c#语言中,结构体和类的区别?

2025-03-18 13:52:37109 次浏览

最佳答案

【从定义上区分】

1)结构体是structure为关键字起手的定义,而类是class。

2)结构体的默认构造函数是无参的构造函数,但是如果你为一个结构体定义了带参的构造函数,你绝对不能再重复去写一遍那个无参的空构造函数;类相反——定义了一个带参的构造函数,绝对要再重复定义一次空构造函数,否则你无法调用空构造函数。

【从使用角度区分】

1)

Struct结构体是“复合类型”,其功能等同与基本的int,double的用法

,尽管struct也可以写方法,但是不赞成这样做。

因为struct的引入是为了解决“多类型”的问题

(比如一个学生记录包含id,name等不同基本类型的组合,单个int,string无法满足,所以才出现了struct)。类是组成面向对象编程的基础,功能远远大于结构。

2)Struct因为默认继承System.ValueType(可以这样理解),因此说,

一个结构赋值给另外一个结构的时候,相当于做了拷贝复制功能

(两者完全没有联系,假设A=B,那么B和A各自改变互不影响);但是class的话A=B,A和B共同引用同一个单元,A或者B有一方改变就影响了另外一方。

本质上class是封装的指针而已。

声明:知趣百科所有作品均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请在页面底部查找“联系我们”的链接,并通过该渠道与我们取得联系以便进一步处理。