读书--编写高质量代码 改善C#程序的157个建议2

重新从图书馆将这本书借出来,看一遍似乎记不住,这次打算看一点就记录点,记录下自己容易忘记的知识点,便于记住。

建议1:正确使用字符串:

1 string str1= "helloworld" + 1;

2 string str2 = "helloworld" + 1.toString()

第二句比第一句好,因为第1句要讲int,装箱成string. 第二句调用非托管方法,效率高

另外 StringBuilder一次分配16位的内存,当存储大于16个字符的时候,再加16,一直往后

string.Format实际上调用了StringBuilder实现

建议3: 区别对待强制转型与as和is

强制转型如果失败会抛出异常,而as不会,失败就为null。is是用来判断类型的

建议4:TryParse比Parse好

因为TryParse失败的时候不会抛异常,而Parse会。异常处理会耗时些

建议5:使用int?来确保值类型可以为null

int? i = null

等同于 Nullable<int> i = null;

看到个以前没有见过的语法: int j = i ?? 0; 如果i的HasValue为true,则将i 的value赋值给j;否则,就给j赋值为0