C#结构体与类区别:
参考:http://www.runoob.com/csharp/csharp-struct.html
结构体 | 类 |
值类型 | 引用类型 |
存储在栈中(栈空间小,但访问速度快) | 存储在堆中(堆空间大,但访问速度慢) |
可定义构造函数(不能声明默认构造函数),不可定义析构函数 | |
不能继承其他的结构和类 | 类可以继承类 |
结构成员不能指定为 abstract、virtual 或 protected | 类成员可以 |
结构实例化,可以使用New,也可以不使用New (使用New,会调用构造函数;不使用New,不会调用构造函数,但在初始化全部字段前,字段将保持未赋值状态且对象不可用。) | 使用New |
结构体中声明的字段无法赋予初值,如以下会报Error | 类可以,如以下OK |
结构体的构造函数中,必须为结构体所有字段赋值 (不能声明默认构造函数) | 类的构造函数无此限制 |