编写高质量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表达式是一个简洁的委托,左边是方法的参数,右边是方法体:=>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2021-03-21 gRPC介绍和使用
2008-03-21 Mysql使作心得(备份,还原,乱码处理)