C#中类与结构,堆与栈,值类型引用类型比较

类和结构的区别

类当中默认有一个无参数的构造函数,当在类中写一个有参数的构造函数,默认的无参数的构造函数就没有了。
类中写构造函数参数列表中参数个数可以不确定。

结构中默认也有一个无参数的构造函数,当在结构中写一个有参数的构造函数,默认的无参数的构造函数还有。
在结构中写构造函数,要把所有的字段都完全赋值。

类是引用类型,结构是值类型


堆和栈的区别

栈是编译期间就分配好的内存空间,因此代码中必须就栈的大小有明确的定义。
堆是程序运行期间动态分配的内存空间,可以根据程序的运行情况确定要分配的堆内存的大小。

值类型的值存在栈上;引用类型,栈上存的是地址,值在堆上。



.Net中哪些是值类型?哪些是引用类型?


猜你喜欢

转载自blog.csdn.net/delicious_life/article/details/80284092