首页 > 代码库 > 结构与类的区别
结构与类的区别
1、结构中可以声明字段,但是不能够给字段初始值
public struct Point { private int x; x = 1; //错误 1 类、结构或接口成员声明中的标记“=”无效 public Point(int x) { this.x = x; } }
在类中声明一个字段之后也是不能够为其赋值的
public class RefPoint { private int x { set; get; } public int y; y = 12;//错误 1 类、结构或接口成员声明中的标记“=”无效 public RefPoint(int x) { this.x = x; } }
但是可以再声明字段的同时给他赋值
public class RefPoint { private int x { set; get; } public int y = 12; public RefPoint(int x) { this.x = x; } }
C#编译器在编译的时候,如果我们声明字段的时候为字段赋值,那么为字段赋值的代码C#编译器在编译的时候会将赋值的代码放到构造函数中去,其实严格意义上来说,类的字段也是不能有初始值的.只不过微软在背后帮我们做了点事情,我们不知道而已.
2、构造函数
结构不能手动添加无参数构造器
结构体的构造函数必须为所有的字段赋值
3、结构体不能从另外一个结构或者类继承(它隐士继承了valuetype类型),但是可以实现接口
4、结构是值类型,而类是引用类型
5、结构类型不能使用 == 进行比较,会报错
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。