C#中结构体和类的区别

C#中结构体跟类的区别

第一点 存储空间

结构体跟类最大的区别在于存储空间,结构体是,存在上,类是引用,存在上。

第二点 特性

面向对象思想中有三大特性,封装,继承,多态,结构体具备封装的特性,但不具备继承多态的特性。

第三点 初始值

结构体成员变量申明不能指定初始值,而类可以

在这里插入图片描述

在这里插入图片描述

第四点 protected访问修饰符

结构体成员不能使用protected访问修饰符
如图
在这里插入图片描述

第五点 无参构造函数

结构体中不能申明无参的构造函数,而类可以
如图
在这里插入图片描述

第六点 有参构造函数

中申明有参构造函数后,无参构造函数会被顶掉,如果想使用无参构造函数,必须重写无参构造函数
如图
![在这里插入图片描述](https://img-blog.csdnimg.cn/3a79b11052b44251969aad7438c62e85.png在这里插入图片描述

可以看到我们在Class1中写了一个有参的构造函数,就不能使用无参构造函数了,必须重写一个无参构造函数
在这里插入图片描述
结构体中申明有参构造函数后,无参构造不会被顶掉
在这里插入图片描述

第七点 析构函数

结构体中不能申明析构函数,而类可以
如图
在这里插入图片描述

第八点 继承

结构体不能被继承,而类可以
如图
在这里插入图片描述

第九点 初始化

结构体需要在构造函数中初始化所有成员变量,而类随意
如图
在这里插入图片描述

第十点 静态

结构体不能被静态static修饰,而类可以
如图
在这里插入图片描述

第十一点内部申明自己

结构体不能在内部申明和自己一样的结构体变量,而类可以
如图

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值