c#中引用类型
- 提问者网友:饥饿走向夜
- 2021-05-05 08:48
- 五星知识达人网友:胯下狙击手
- 2021-05-05 10:13
所有的类型的 父类都是 OBJECT
值类型 :整数 小数 布尔 结构 枚举 字符 等等
引用类型 :类类型 数组 集合 字符串 接口 委托事件等等
在C#中所有的类型继承于System.Object根类型,这也就意味着就代码层面来讲,在C#中所有的类型都是Class,,即一切都是Class类型
那么值类型就是: System.Int16,System.Int32,System.Boolean... 等等
希望对您有帮助
谢谢
- 1楼网友:怙棘
- 2021-05-05 13:58
首先,C#中的数据类型按存储方式来分可划分为:值类型和引用型。值类型存储在堆栈中,引用型存储在托管堆中。windows中,32位处理器上的每个进程都有4GB的虚拟内存,而这些堆栈,托管堆就存在于这4GB的虚拟内存中。比如int就是值类型,存储于堆栈中,而且存储的就是其值。Person obj=new Person();obj是值类型,它保存的是对存储于托管堆中Person实例的引用(就是托管堆中Person实例的地址)。引用类型是一种更为复杂的类型,也是实现面向对象所必须的类型。至于为什么class是一种引用类型,这是在设计C#语言的时候就定义了的。
- 2楼网友:一秋
- 2021-05-05 12:38
C# 应用程序类型包括 Windows 控制台应用程序、Windows 窗体应用程序、ASP.NET Web 应用程序、ASP.NET Web 服务应用程序、智能设备应用程序、ActiveX 应用程序以及安装和部署应用程序。
值类型 | 引用类型 | |
内存分配地点 | 分配在栈中 | 分配在堆中 |
效率 | 效率高,不需要地址转换 | 效率低,需要进行地址转换 |
内存回收 | 使用完后,立即回收 | 使用完后,不是立即回收,等待GC回收 |
赋值操作 | 进行复制,创建一个同值新对象 | 只是对原有对象的引用 |
函数参数与返回值 | 是对象的复制 | 是原有对象的引用,并不产生新的对象 |
类型扩展 | 不易扩展 | 容易扩展,方便与类型扩展 |
类: 符合 引用类型 标准!
- 3楼网友:独行浪子会拥风
- 2021-05-05 12:06
鄙视楼上广告……
说这个问题你要先知道声明一个类或者变量的时候 堆和栈是则么工作的
去查这个问题吧你 看完这个你就明白了 并且大彻大悟的明白
- 4楼网友:千夜
- 2021-05-05 11:27
类的声明变量在栈中,new关键字是在堆区申请空间。然后类的变量指向堆中的空间。
如果说为什么,其实就是微软就是这么设计的。
C#中除了基本类型和结构体外。其他的(好像就剩类了)都是引用类型。
引用类型向C 中的指针,但与指针不同有的书好像叫做句柄。