C#中类和结构体的区别

【区别】

  • 类是引用类型,结构体是值类型
  • 类中的字段在声明时可以赋值,结构体中在声明字段时不能赋值
  • 类中的构造器可以初始化部分字段,结构体中的构造器在必须初始化所有字段
  • 类支持终结器,结构体不支持(结构体是值类型 ,以值的形式复制,难以知道在什么时候能安全执行终结器并释放结构体占用的非托管资源,垃圾回收器可以知道什么时候一个引用类型实例的引用不再活动,可在此之后的任何时间为这个引用类型运行终结器)
  • 类可以自定义无参数构造器,结构体不可以
  • 类必须用new实例化,结构体可以不用
  • 类可以继承另一个类,也可以被另一个类继承,结构体不可以(值类型不能继承,引用类型可以)

【相同】

  • 都可包含字段、属性、构造器和方法
  • 都可以实现接口

【使用】

若对象只有一些简单的数据,使用结构体;若对象包含的数据很多,还有一些操作,则使用类。例如,对猫这个对象,如果只用到颜色和体重,用结构体;如果用到颜色、体重、长度、速度、灵活度等,还要控制猫的颜色根据xx条件改变、速度在xx条件要重新计算等,用类。

【参考】

《C#本质论5.0》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值