C#结构与类的区别

来源:互联网 发布:建模软件有哪些 编辑:程序博客网 时间:2024/06/05 14:48

1. 在内存中,结构的定义是一个值类型,是在堆栈上创建的;而类的定义是一个引用类型,是在堆上创建的。

2. 不能为结构声明默认构造函数,因为编译器始终会为结构生成一个默认构造函数(这个默认构造函数总是将字段设为0、null、false)。如果自己为结构声明了一个非默认构造函数,则编译器不再为结构的字段初始化,这时我们必须在构造函数中对字段进行初始化。

3. 在一个类中,可以再声明一个字段的同时初始化它,但在结构中这是不允许这样做的。