C#的类与结构体是初学者很容易混淆的两个概念,本文以表格的方式整理了两者的相同点和不同点。
博文首发地址:http://bbs.lanou3g.com/forum.php?mod=viewthread&tid=5151&extra=page%3D1
2022-09-13 18:32:55
C#的类与结构体是初学者很容易混淆的两个概念,本文以表格的方式整理了两者的相同点和不同点。
博文首发地址:http://bbs.lanou3g.com/forum.php?mod=viewthread&tid=5151&extra=page%3D1
大分类 | 小分类 |
结构体 |
类 |
特点 |
变量类型 |
值类型 |
引用类型 |
创建方式 |
new / 直接声明 |
new |
|
内存位置 |
堆栈或内敛 |
托管堆 |
|
优点 |
小巧、轻便、高性能 |
功能强大 |
|
数据成员 |
字段 |
可以有,但不能赋值 |
可以有,可以赋值 |
常量 |
有 |
有 |
|
事件 |
有 |
有 |
|
函数成员 |
属性 |
有 |
有 |
方法 |
有 |
有 |
|
虚方法 |
无 |
有 |
|
抽象方法 |
无 |
有 |
|
构造器 |
有,但不能重写无参(默认的)构造器 |
有 |
|
析构器 |
无 |
有 |
|
运算符重载 |
有 |
有 |
|
索引器 |
有 |
有 |
|
面向对象基本特征 |
封装 |
支持 |
支持 |
继承 |
不支持,但结构派生于System.Object |
支持 |
|
多态 |
不支持 |
支持 |