《构建高质量的C#代码》笔记

这本书看完有一段时间了,和大家分享一下个人认为比较好的知识点

1 无论是基础代码还是代码结构,要想在开发时就能达到很高的质量的可能性并不大

2 在软件开发中,代码和架构的改进过程,也就是重构的过程,需要我们队每一条语句或语句结构、算法、架构进行逐步的改进和优化

3 值类型:即变量名所指的就是实际的数据值。除了string和object,其余均为值类型

4 引用类型:变量名所指的实际数据值的内存地址。包括string和object

5 整数运算比浮点运算的速度要快的多

6 逐字字符串@:唯一需要转义的符号就是双引号""

7 在大型系统中,如果是要大量的字符串连接操作,使用StringBuilder类型对于提升系统的性能还是非常有帮助

8 数据类型的转换是由代价的,我们在代码中应该尽量避免类型转换,在一些相关的运算的数据使用上,应考虑首先使用统一的数据类型

9 C#中的HashTable相当于Map

10 结构关键字:

  10.1 结构是值类型的,在赋值时,它将复制所以成员的值

  10.2 结构应使用与轻量级的数据结构,对于复杂的结构,数据的传递效率并不高,因为它将传递所有成员的值,考虑使用类代替

11 String和string的区别:String是.Net Framework 中的类,string是C#中的关键字。string是String的别名,两者可相同方式使用,但在C#程序中建议使用string

12 在对象不再使用时立即将其设置为null会是一个很好的编程习惯

13 在定义参数时,在参数前加上ref关键字就成为了引用参数

14 类前加sealed表示密封类,不可被继承

15 可以使用Microsoft.VisualBasic命名空间的资源提高开发效率,主要关注Microsoft.VisualBasic.Devices包括:Audio类,Clock类,Computer类,ComputerInfo类,Keyboard类,Mouse类,Network类,Port类,ServerComputer类

16 易失域关键字volatile,使各线程排队读写数据

17 互斥锁lock,与volatile不同的是lock只能操作对象

18 using关键字作为指令时,可以引用命名空间或创建引用别名,而作为一个语句,他的功能是创建一个对象的引用块,然后自动清理资源