C#编写建议-笔记
喝完牛奶好睡觉
大牛就是不断的扣腚...扣腚...
展开
-
建议1 正确操作字符串
字符串是我们常用的基础数据类型,如果使用不当,养成不好的习惯,会对程序造成额外的开销。建议:确保尽量少的装箱避免分配额外的内存空间确保尽量少的装箱1:String str1 = "str1" + 9;2:String str2 = "str2" + 9.ToString();第一行代码需要执行一次装箱行为int 转 object 转 string第二行代码不需要执行原创 2017-05-02 22:34:42 · 316 阅读 · 1 评论 -
建议2 使用默认转型方法
对于如何正确的对类型实现转型也是程序员必须掌握的。对于FCL(Framework Class Library,即Framework类库。)提供的类型进行转型时,都应该使用FCL提供的转型方法。包括:使用类型的转型运算符。使用类型的转型运算符,其实就是使用类型内部的一个方法。转换运算符分为两类:隐式转换和显示转换(强制转换)。基元类型普遍都提供了转换运算符,如:int i=0;fl原创 2017-05-02 22:39:18 · 320 阅读 · 1 评论 -
建议3 区别对待强制转型与as和is
强转和as的区别如果类型之间都上溯到了某个共同的基类,那么根据此基类进行的转型(即基类转型为子类本身)应该使用as。子类与子类之间的转型,则应该提供转换操作符,以便进行强制转型。as操作符不能操作基元类型。如果涉及基元类型的转换,就要通过is转型前的类型来进行判断,以避免转型失败。原创 2017-05-02 22:40:43 · 351 阅读 · 1 评论 -
建议4 TryParse比Parse好
除了string外的所有基元类型都提供了Parse和TryParse方法。区别如果字符串格式不满足转换的要求,Parse方法将会引发一个异常,TryParse方法则不会引发异常,它会返回false,同时将result置为0。如果Parse和TryParse执行都成功,它们的效率在一个数量级上,但是如果执行失败,Parse的效率就太低了。总结并不建议为所有的类型都提供TryPar原创 2017-05-02 22:41:34 · 344 阅读 · 0 评论 -
建议5 使用int?来确保值类型也可以为null
为什么使用null?1.数据库中int字段可以设置为null,而不必给初始值。2.在网络传输中,处理int数据丢失时的存储形式。3....int? i=123;int j=i??0;int j=i??0表示的意思是,如果i的HasValue为true,则将i的value赋值给j;否则,就给j赋值为0。总结使用可空类型,更加灵活赋值。原创 2017-05-03 23:40:58 · 315 阅读 · 0 评论 -
建议7 将0值作为枚举的默认值
允许使用枚举类型有byte、sbyte、short、ushort、int、uint、long和ulong。应该始终将0值作为枚举的默认值。因为枚举的默认值就是0,会避免一些不必要的错误。原创 2017-05-03 23:43:43 · 382 阅读 · 1 评论 -
建议8 避免给枚举类型的元素提供显式的值
一般情况下,没有必要给枚举类型的元素提供显式的值。enum Week{Monday=1,Tuesday=2.ValueTemp,Wednessday=3}Week week=Week.ValueTemp;Console.WriteLine(week);Console.WriteLine(week==Week.Wednessday);输出:Wednessday原创 2017-05-03 23:45:09 · 355 阅读 · 3 评论 -
建议6 区别readonly和const的使用方法
区别const是一个编译期常量,readonly是一个运行时常量。const只能修饰基元类型,枚举类型和字符串类型,readonly没有限制。const变量的效率高,是因为经过编译器编译后,我们在代码中引用const变量的地方都会用const变量所对应的实际值来代替const int ConstValue=100;// const 默认是静态的Console.Write原创 2017-05-03 23:42:46 · 353 阅读 · 1 评论