自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

转载 2019-07-06 sql 连续出现次数

由手机通讯记录界面想到的问题 SELECT CASE WHEN AA.num=1 THEN AA.Tel ELSE AA.Tel+'('+CASt(AA.num AS VARCHAR(4))+')' END AS 通讯记录,AA.Times FROM ( SELECT a.Tel ,COUNT(...

2019-07-06 13:42:00 215

转载 2019-07-06 sql备忘 连续取最大

连续最大:SELECT M.* FROM #temp MINNER JOIN (SELECT ISNULL(A.score,0)-b.score AS score,B.id FROM #temp AS BLEFT JOIN #temp A ON A.id=B.id+1 ) N ON M.id=N.id WHERE n.score<0如果ID不连续,用row...

2019-07-06 13:40:00 128

转载 2019.06.28 MERGE INTO备忘

--保存主表 MERGE INTO dbo.DeliveryReceiving AS t USING @ReceiveMainDt AS s ON t.Id=s.id WHEN MATCHED THEN UPDATE SET --一行五个字段 t.Amount=s.Amount,t.OperId=s.OperId,t.OperDate=GETDATE(),t.OperBra...

2019-06-28 17:10:00 127

转载 2019.05.21 关于线程安全的总结

总觉得一键转载就是看看而已,还是做一个小小的总结,算是一个概略吧。原文:https://www.cnblogs.com/lixinjie/p/a-answer-about-thread-safety-in-a-interview.html线程安全就是内存安全,系统会给进程分配独立的空间,其中部分内存会被所有线程共享,也就是我们的全局和静态变量,而局部变量是进程分给线程的独立空间,不可...

2019-05-21 16:31:00 85

转载 2019.05.09 读书笔记 关于数据结构

最近在读《大话数据结构》,已经看完了,不知道是不是到了张三丰传授给张无忌太极的境界:好像有什么需要记下来的,又好像不知道该怎么记下来。那就抄书吧数据结构从逻辑上分为:集合、线性、树形、图形。物理上分为顺序和链式。顺序存储一般用于数组,属于静态列表,长度不发生变化的,而链式则是动态列表,所以我们常用的是链式储存,即一个元素分为数据区和引用区,指向下一个元素的地址,如果是双向链表,还...

2019-05-09 16:21:00 101

转载 2019.04.30 学习笔记 四则运算方法

string formula = "1+1*4/3+23*(1+2)";DataTable dt = new DataTable();string really_data = dt.Compute(formula, "false").ToString();转载于:https://www.cnblogs.com/kafeibuhuizui/p/10796467.html

2019-04-30 15:52:00 156

转载 2019.04.19 读书笔记 设置反编译调试方法

1、取消选中(工具 - >选项 - >调试 - >仅我的代码)复选框。2、确保设置了(工具 - >选项 - >调试 - >符号设置 - > Microsoft符号服务器)复选框3、确保选中(工具 - >选项 - >调试 - >启用源链接支持)复选框转载于:https://www.cnblogs.com/kafeibuhuiz...

2019-04-19 17:39:00 87

转载 2019.04.19 读书笔记 比较File.OpenRead()和File.ReadAllBytes()的差异

最近涉及到流的获取与转化,终于要还流的债了。百度了一下,看到这样的两条回复,于是好奇心,决定看看两种写法的源码差异。先来看看OpenRead()public static FileStream OpenRead(string path) => new FileStream(path, FileMode.Open, FileAccess.Read, F...

2019-04-19 17:30:00 2322

转载 2019.04.17 读书笔记 checked与unchecked

在普通的编程中,我们是很容易去分析数据的大小,然后给出合理的类型,但是在很多数据库的累计中,缺存在很多隐患,特别是研发时,数据量小,求和也不会溢出,当程序运行几年后,再来一次大求和,隐形的BUG就出来了,所以对于数据的处理上, 在不确定未来的成长性时,建议加上关键字checked,在溢出时,会抛出异常OverflowException,unchecked 就是不检查溢出。转载于:ht...

2019-04-17 09:18:00 64

转载 2019.04.12 读书笔记 用私有类代替硬编码

什么是私有类?只有私有构造函数,不允许外界实例化的类。除了常用的单例模式,还可以用作类枚举,功能比枚举强大。public class MyClass{ public static Myclass A=new Myclass("小明","001"); public static Myclass B=new Myclass("小红","002") ...

2019-04-12 10:10:00 74

转载 2019.03.29 读书笔记 关于扩展方法

主要优点:可以扩展密封类型;可以扩展第三方程序集中的类型;扩展方法可以避免不必要的深度继承体系。扩展方法还有一些必须遵循的要求:扩展方法必须在静态类中,而且该类不能是一个嵌套类;扩展方法必须是静态的;扩展方法的第一个参数必须是要扩展的类型,而且必须加上this关键字;不支持扩展属性、事件。值得注意的一点是,扩展方法还能够扩展接口。这...

2019-03-29 16:28:00 74

转载 2019.03.29 读书笔记 关于params与可选参数

void Method1(string str, object a){} void Method2(string str, object a,object b) { } void Method3(string str, object a,object b,object c) { }//合成一个方法void Method(string str...

2019-03-29 15:58:00 211

转载 2019.03.29 读书笔记 关于构造函数

我们常在构造函数里看到这样的代码class A{  public A(string name){}  public A(string name,int age):this(name)}这里的:可以是this或者base,意思是调用自身或者基类的构造函数,而且执行顺序是先调用,再执行本身public class Test { publ...

2019-03-29 14:18:00 69

转载 2019.03.29 读书笔记 关于override与new

差异:override:覆盖父类分方法,new 隐藏父类方法。共同:都不能改变父类自身方法。 public class Test { public string Name { get; set; } public virtual void SetName() { Console.Wri...

2019-03-29 12:02:00 53

转载 2019.03.29 读书笔记 关于匿名类

匿名类事语法糖,编译器实际生成了一个随机泛型类。匿名类得属性都是只读的匿名类重写了Equals,GetHashCode和ToString方法。ToString():{ 属性名:值,属性名1:值1}Equals():比较值是否相同。如果写多个匿名类的元素顺序和名称以及类型相同,则编译器只会生成一个匿名类。转载于:https://www.cnblogs.com/...

2019-03-29 11:54:00 68

转载 2019.03.29 读书笔记 设计模式之属性与字段

属性:属性是语法糖,反编译后,是一个私有字段和两个方法[CompilerGenerated]private string <Name>k__BackingField; [CompilerGenerated]public void set_Name(string value){ this.<Name>k__BackingFiel...

2019-03-29 11:03:00 105

转载 2019.03.28 读书笔记 关于lock

多线程就离不开lock,lock的本质是一个语法糖,采用了监视器Monitor。lock的参数,错误方式有很多种,只需要记住一种:private static readonly object lockobj=new object();只要写这行代码就不会错了,其他的公共的,值类型,this等,就被排除了。那么为什么不能使用是公共属性或者this呢?因为你在代码里锁了this或...

2019-03-28 16:20:00 115

转载 2019.03.28 读书笔记 关于try catch

try catch 在不异常的时候不损耗性能,耗损性能的是throw ex,所以在非异常是,不要滥用throw,特别是很多代码习惯:if(age<0) throw new Exception("年龄不能小于0"),这种代码。另外throw 有多种写法try catch(ex) { throw ex; }这种代码是表示ex 已经被处理了,又重新抛出了ex异常,重置了错误信息,...

2019-03-28 14:44:00 187

转载 2019.03.27 读书笔记 关于GC垃圾回收

在介绍GC前,有必要对.net中CLR管理内存区域做简要介绍:  1、 堆栈:用于分配值类型实例。堆栈主要操作系统管理,而不受垃圾收集器的控制,当值类型实例所在方法结束时,其存储单位自动释放。栈的执行效率高,但存储容量有限。  2 、GC堆:用于分配小对象实例。如果引用类型对象实例的大小小于85000字节,实例将被配置在GC堆上,当有内存分配或者回收时,垃圾收集器可能会对GC堆进...

2019-03-27 18:05:00 112

转载 2019.03.26 读书笔记 关于泛型与非泛型的性能

泛型的优势增加了类型安全,减少了装箱。当然非泛型也不是毫无作用,比如我们在多参数的接口时,总不能写20个,30个参数,那么就可以用一个非泛型转json,约定参数类型的顺序,转回来,达到参数的个数,类型不受限制,也使代码显得美观。在性能上,由于非泛型增加了装箱,以及GC,所以性能很差,具体使用看应用场景。转载于:https://www.cnblogs.com/kafeibuhuiz...

2019-03-26 18:04:00 92

转载 2019.03.26 读书笔记 关于for与foreach

for 是索引器,foreach是迭代器foreach在movenext()中增加了对集合版本(一个整数,每次对集合修改都+1)的验证,另外反编译后的效果是使用了using(是try finally的语法糖),调用了dispose()性能上在一个级别,且一直有争议,暂不做结论,只在应用场景上做区别:不对集合做修改,为了代码美观使用foreach,修改集合用for。转载于:ht...

2019-03-26 17:44:00 73

转载 2019.03.26 读书笔记 关于event

event 主要是给委托加了一层保护,不能任意的 class.delegate=null,class.delegate=fun1,不能由调用者去任意支配,而是由class自己去增加或减少,用+=、-=。转载于:https://www.cnblogs.com/kafeibuhuizui/p/10598452.html...

2019-03-26 10:07:00 302

转载 2019.03.26 读书笔记 关于 invoke与begininvoke

invoke与begininvoke是同步委托和异步委托,但是有两种使用情况:  1. control中的invoke、begininvoke。   2. delegrate中的invoke、begininvoke。在control中主要是解决跨线程访问UI的问题,当invoke时,子线程把方法交给主线程执行,并等待,直到主线程执行完后,子线程才继续往下执行,而begin...

2019-03-26 09:52:00 63

转载 2019.03.26 读书笔记 关于闭包

闭包的本质就是 有权访问另一个函数中变量的函数。class Program{ static void Main(string[] args) { Console.WriteLine(GetClosureFunction()(30)); } static Func<int, int> GetClosure...

2019-03-26 09:06:00 64

转载 2019.03.22 读书笔记 Linq中的IEnumerable与IQueryable

Linq主要分为 Linq to object 、Linq to XML 、Linq to sql(现在都用EF了)。针对object和sql,微软分别设计了两套接口IEnumerable、IQueryable(其中IQueryable继承与IEnumerable),针对LINQ to OBJECTS时,使用Enumerable中的扩展方法对本地集合进行排序和查询等操作,查询参数接...

2019-03-22 16:52:00 154

转载 2019.03.22 读书笔记 var object dynamic

var:语法糖,在编译时推断出类型,根据反编译可以看出。实际用处是增加代码的健壮性,比如 linq ,匿名对象等。object:很多人容易和var混淆,其实概念上完全不同,没什么可比性。dynamic:作为静态语言的C#,实现了动态语法,在运行时才验证类型,反编译看到的实际上是object类型,但是与object区别的是,在编写和编译的时候都不会去检查类型,而且dynamic类型...

2019-03-22 11:34:00 69

转载 2019.03.22 读书笔记 浅拷贝与深拷贝

当自定义类的成员是值类型的时候,深浅拷贝无差异(string类型由于不可修改的特性,也无差异)。当成员是引用类型的时候,浅拷贝的定义是:拷贝的副本,引用类型成员只拷贝了成员地址,修改副本的引用类型成员,主本也被修改了,深拷贝的定义是,对于引用类型成员,重新创建实例,主副本修改,互不影响。代码实例:[Serializable]public Employee:ICloneab...

2019-03-22 10:09:00 46

转载 2019.03.21 读书笔记 ==与Equals

首先得出一个结论:==是比较变量内存的数据,Equals是值比较。但是他们都能被重写,所以object又增加了一个RefrenceEquals不可被重写,只比较数据:[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success), NonVersionable, __DynamicallyInvokable]...

2019-03-21 18:11:00 97

转载 2019.03.21 读书笔记 枚举ENUM

其实没必要为枚举显式赋值,如果赋值了,就一定要全部赋值,否则默认在上一个元素的基础上+1,如果不给枚举变量赋值,就算枚举中没有0元素,也会显示为0,而超出枚举范围的整型数据,也会显示值本身,而不是异常。1 public enum mycolor{2 green=1,3 red,4 yellow=3 5 }6 console.writ...

2019-03-21 15:46:00 99

转载 2019.03.21 读书笔记 readonly与const

区别:  const是编译时常量(指反编译时看到的源码是常量本身,而不是变量),自带static,只能修饰基元类型、枚举、字符串,readonly是运行时常量(全局变量或者构造赋值),不受类型限制,但在运行时,第一次赋值后,不可改变。此处不可改变也分两种情况:值类型时,值本身不可改变,引用类型时,地址不可改变,对象的属性还是可以改变的。转载于:https://www.cnblog...

2019-03-21 15:34:00 44

转载 2019.03.21 读书笔记 基元类型的Parse与TryParse 性能与建议

Parse转换失败时会抛出异常,耗损性能,如果转换成功,则与TryParse无差异。查看源码,tryparse的代码更多一些,在失败时,反而性能更优,主要是抛出异常耗损了性能。所以在不确定是用Tryparse,确定成功时用Parse,毕竟少写两行代码。转载于:https://www.cnblogs.com/kafeibuhuizui/p/10571508.html...

2019-03-21 14:32:00 69

转载 2019.03.20 读书笔记 值类型与引用类型以及为什么装箱会性能耗损

什么是值类型和引用类型什么是值类型:所有的结构都是抽象类型System.ValueType的直接派生类,而System.ValueType本身又是直接从System.Object派生的。根据定义所知,所有的值类型都必须从System.ValueType派生,所有的枚举都从System.Enum抽象类派生,而后者又从System.ValueType派生。 所有的值类...

2019-03-20 18:06:00 170

转载 2019.03.20 读书笔记 as is 以及重写隐式/显示

强转、as is 的用法  强制转换类型有两种:子类转基类,重写隐式(implicit)\显示(explicit) 转换操作符class myclass{private int value;public int Value{get { return value; }}public myclass(int value){this.val...

2019-03-20 14:15:00 102

转载 2019.03.20 读书笔记 关于Reflect与Emit的datatable转list的效率对比

Reflectpublic static List<T> ToListByReflect<T>(this DataTable dt) where T : new() { List<T> ts = new List<T>(); string tempName = string.Em...

2019-03-20 09:01:00 143

转载 2019.03.19 读书笔记 string与stringbuilder的性能

1 string与stringbuilder  并不是stringbuilder任何时候都在性能上占优势,在少量(大约个位数)的字符串时,并不比普通string操作快。  string慢的原因不是string.conact(),而是string大量操作时,产生新的对象以及GC回收对象而造成的性能低下。 stringbuilder使用前,最好估算一下大约的长度,否则默...

2019-03-19 16:21:00 169

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除