永发信息网

c#中引用类型

答案:5  悬赏:20  手机版
解决时间 2021-05-05 13:26
  • 提问者网友:饥饿走向夜
  • 2021-05-05 08:48
什么是c#中的应用类型?类为什么是一种引用类型?
最佳答案
  • 五星知识达人网友:胯下狙击手
  • 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 中的指针,但与指针不同有的书好像叫做句柄。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯