1、值类型与引用类型
在C#中值类型的变量直接存储数据,而引用类型的变量持有的是数据的引用,数据存储在数据堆中。
值类型(value type):byte,short,int,long,float,double,decimal,char,bool 和 struct 统称为值类型。值类型变量声明后,不管是否已经赋值,编译器为其分配内存。
引用类型(reference type):string 和 class统称为引用类型。当声明一个类时,只在栈中分配一小片内存用于容纳一个地址,而此时并没有为其分配堆上的内存空间。当使用 new 创建一个类的实例时,分配堆上的空间,并把堆上空间的地址保存到栈上分配的小片空间中。
https://www.cnblogs.com/xiaodongy/p/7989711.html
https://blog.csdn.net/qiaoquan3/article/details/51202926
2、拆箱与装箱
string.Empty 和 "" 在栈和堆上都分配了空间,而 null 只在栈上分配了空间,在堆上没有分配,也即变量不引用内存中的任何对象
5、typeof 与GetType()的区别
6、接口与抽象方法的区别
7、session与cookie
8、socket、TCP与UDP
10、事件Event
11、委托
12、Task、Thread、ThreadPoll、Parallel、async、await
14、IO
15、反射