一杯清酒邀明月
天下本无事,庸人扰之而烦耳。

本质区别
class 是引用类型
struct 是值类型

什么是class–类
class 是面向对象编程的基本概念,是一种自定义数据结构类型,包含:字段,属性,构造函数,方法,索引器,操作符等。c#中所有的类继承自System.Object类,因此是一种引用类型,所以当new 一个对象时,对象保存了实例对象的实际数据的引用地址,而队像的值保存在托管堆中

什么是struct–结构
struct 是一种值类型,用于将一组相关信息的变量,组成一个单一的变量实体(化零为整),结构继承System.ValueType类,所以是一种值类型,struct 实例分配在线程的堆栈上(stack),他本身存储了值,但是没有该值的指针,所以struct 可以当做int,char,这样的基本类型类对待

值类型和引用类型

相同点与不同点
一)相同点:语法类似
二)不同点:
1.class是引用类型,继承自System.Object ; struct是值类型,继承自System.ValueType类,不具备多态
2.class 表现为行为方法。struct常用语数据存储。
3.class支持继承,可继承 类,接口;struct没有继承性,不能作为class基类,但支持接口继承
4.class支持生命无参构造函数,析构函数;struct只支持 有参构造函数
5.实例化,class使用new声明,struct不需要,
6.class可以实现抽象类,可以声明抽象函数,struct为抽象,不能声明抽象函数
7.class实例由垃圾回收机制来保证内存的回收处理,struct在使用完后自动解除内存分配。
8.作为参数传递,class以地址方式传递,struct以值的方式传递

enum.–枚举
由一组成为枚举数列表的命名常数组成的独特类型,每种枚举类型都有基础类型,该类型是可以除char以外的任何整型,枚举元素默认基础的类型为int。默认情况下第一个枚举数值为0,后面枚举数的值一次+1 :

1 enum Days
2 {
3      Monday = 1, Tuesday, Wenesday, Thurday, Friday, Saturday,                 
4      Sunday
5 }

枚举的作用:
1.限制用户不能随意赋值,只能在定义枚举的时候列举的值总选择

2.不需要死记每一值是什么,只需要选择相应的值

posted on   一杯清酒邀明月  阅读(900)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示