编写高质量c#代码的20个建议
一。字符串操作:哪个效率更高。
1.string 装箱
2.StringBuilder 更高
3.string.Format("{0}{1}{2}",a,b,c) 更高
二。默认类型转换:
使用类型内部的方法转换;
parse,tryparse,tostring,todouble,to datetime
tryparse 比parse 好,不会引发异常
三。使用int?来确保值类型也可以为Null
int? i=123;
int j=i??0
var,dynamic的区别
foreach比for效率更高,默认调用dispose,foreach对集合整个版本控制,迭代器版本检测,增删操作后版本变化了
缺点是foreach不支持再循环中对集合增删操作,否则会报异常,这时要用for
四:想让代码高效运行,尽量避免装箱拆箱。
所以使用泛型避免了装箱拆箱
五:集合是多线程不安全的,需加锁,
多线程安全的集合有:ConcurrentBag<T>对应List<T>
ConcurrentDictionary<Tkey,tvalue>对应Dictionary<Tkey,tvalue>
IList<T>和 List<T> ,作为基类要使用IList<T>能带来继承的优势。
Action,Func
Lambda表达式是一个简洁的委托,左边是方法的参数,右边是方法体:=>