c#中结构体与类的比较

C#中类和结构体区别:

类是有行动、方法和成员的有机体,而结构体是活生生的有机体。

1、  值类型和引用类型

类是引用类型,继承System.Object,数据存储在堆上,结构体值类型,继承System.ValueType,数据存储在堆栈上;堆栈上的对象有编译器自动创建和销毁,所以堆栈的执行效率要高些,但是堆栈资源有限,不适合出力复杂的大的逻辑,所以结构体出力小对象,类处理复杂的商务逻辑;类创建一个新对象,只是创建了一个引用,新对象的修改同时也会反映到源对象上,而结构体创建一个新对象后是创造源对象的一个副本,新对象的任何修改不会反应到源对象上。

2、继承性

类可完全扩展,可以继承基类和接口,也可以被继承,除非显示被声明为sealed.

结构体不能继承类或者结构体,虽然没有显示声明为sealed但是默认为sealed,但是可以继承接口

3、  内部结构

类有默认的构造函数、析构函数,可以使用abstract,sealed,protect等修饰符,必须用new初始化;

结构体没有默认的构造函数,没有析构函数,可以自定义带参数的构造函数来初始化字段,但是不能定义不带参数的构造函数,不能初始化实力字段,可以不用new初始化;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值