博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
结构体和类
阅读量:7075 次
发布时间:2019-06-28

本文共 930 字,大约阅读时间需要 3 分钟。

结构是值类型,但在语法上常常当做类来处理

struct typeNum{   public string a="hello";   public string b="world";}

如果仅需要一个小的数据结构,可以考虑用结构,因为结构在性能上比类略佳。

结构不支持继承,在使用前必须先初始化结构是会影响性能的值类型,但根据使用结构的方式,这种影响可能是正面的,也可能是负面的。

正面的影响是为结构分配内存时,速度非常快,因 为它们将内联或者保存在栈中。在结构超出了作用域被删除时,速度也很快。负面影响是,只要把结构作为参数来传递或者把一个结构赋予另一一个结构如 A-B,其 中A和 B是结构),结构的所有内容就被复制,而对于类,则只复制引用。 这样就会有性能损失,根据结构的大小,性能损失也不同。

类和结构体的不同点: 

  1.关键字不同 一个是class,一个是struct

  2.类型不同,一个是引用类型,一个是值类型(存储:一个堆区,一个栈区)。关于值类型和引用类型以及堆与栈详细可见

  3.成员不同,结构体没有默认的构造函数(可以添加)和没有析构函数,不可以使用abstract,protected,sealed修饰

  4.Struct变量使用完之后就自动解除内存分配,Class实例有垃圾回收机制来保证内存的回收处理

  5.继承性。结构不可以继承自另一个结构或被继承,但和类一样可以继承自接口

  6.在结构体中可以声明字段,但是声明字段的时候是不能给初始值的.

  7.实体类中如果我们没有显示的定义构造函数,那么会有一个隐式无参的构造函数(重载构造函数之后,需要显示声明无参构造函数),

    而在结构体中隐身无参的构造函数无论如何都存在

  8.在类中可以显示的定义无参的构造函数,而在结构体中我们不能显示的定义无参的构造函数

  9.结构体是可以New的,而结构体构造函数要求必须要为所有的字段赋值.即使是无参的构造函数,也会给值类型赋初值为0,引用类型赋初值为null

同:

  1.都有属性和方法

  2.和类一样可以继承自接口

转载于:https://www.cnblogs.com/ithuo/p/4665868.html

你可能感兴趣的文章
C++——基本记忆
查看>>
MySQL安装方法及简单配置
查看>>
使用PHP生成二维码,并可以在网站中调用
查看>>
读《十亿美金的教训》看中国传奇人物
查看>>
Spring MVC入门
查看>>
Linux vim 命令
查看>>
rsyslog + mysql
查看>>
activePerl的PPM如何使用http代理
查看>>
linux下ntp时间服务器搭建
查看>>
Varnish调优手记
查看>>
2015.12.30 日学习总结
查看>>
我的友情链接
查看>>
携程一万亿交易额的市场逻辑
查看>>
linux ftp 服务配置
查看>>
各消息队列对比,Kafka深度解析,众人推荐,精彩好文!
查看>>
二叉查找树转双向链表JAVA实现
查看>>
自动化Oracle数据库静默安装
查看>>
买二手房不如买新房
查看>>
如何利用C++搭建个人专属的TensorFlow
查看>>
阿里云和腾讯云搭建hadoop
查看>>