首先是语法定义上的区别啦,这个就不用多说了.定义类使用关键字class 定义结构使用关键字struct.在语法上其实类和结构有着很多相似的地方.
1、结构体中声明的字段无法赋予初值,类可以:
执行以上代码将出现“结构中不能实例属性或字段初始值设定”的报错,而类中无此限制,代码如下:
2、结构体的构造函数中,必须为结构体所有字段赋值,类的构造函数无此限制:
补充:类与结构的选择
首先明确,类的对象是存储在堆空间中,结构存储在栈中。堆空间大,但访问速度较慢,栈空间小,访问速度相对更快。故而,当我们描述一个轻量级对象的时候,结构可提高效率,成本更低。当然,这也得从需求出发,假如我们在传值的时候希望传递的是对象的引用地址而不是对象的拷贝,就应该使用类了。
3、类为引用类型,可继承;结构体为值类型,无继承
参考:C# 类与结构体的区别
定义类的语法:
定义结构的语法: