CLR支持两种基本类型:值类型引用类型

MSDN关于值类型与引用类型的说明:

值类型(Value Type),值类型实例通常分配在线程的堆栈(stack)上,并且不包含任何指向实例数据的指针,因为变量本身就包含了其实例数据,比如:Int,Bool,Struct,Enum。所有的值类型数据继承自System.ValueType,而System.ValueType本身又继承自System.Object。所有的枚举都继承自System.Enum,而System.Enum又继承自System.ValueType.

引用类型(Reference Type),引用类型实例分配在托管堆(managed heap)上,变量保存了实例数据的内存地址,比如:String,Class,Interface,Delegate。所有的引用类型继承自System.Object

在C#中还会确保值类型实例所有的字段都被置为0(二进制意义上的0)

※ 声明的值类型还是引用类型都不能以值类型作为基类,所以我们不应该向值类型中引入任何新的虚方法,值类型中更不能有任何的抽象方法,所以的方法都隐含为密封(sealed)方法。

※ 因为未装箱值类型没有分配在托管堆上,所以一旦定义该类型实例的方法不再处理活动状态,为它们分配的存储空间就会立即释放。这意味着值勤类型实例在被回收时不可能收到任何通知(通过Finalize方法),Finalize的定义相当的奇怪,因为该方法只有在其装箱形式的实例上才可能会被调用,因此,许多的编辑器不允许在值类型内定义Finalize方法,虽然CLR允许一个值类型字义一个Finalize方法,但是在值类型的装箱实例被回收时,CLR并不会调用该方法。

转载于:https://www.cnblogs.com/challengesoflife/archive/2012/01/31/2332729.html

c# 值类型数据与引用类型数据相关推荐

  1. python解析返回值类型为xml的数据接口

    样参 <?xml version="1.0" encoding="UTF-8"?>-<root><state>success ...

  2. C#之值类型和引用类型

    本文意在巩固基础知识,并不是对其进行深入剖析,还望理解. 本文是对此项知识的整理文,有些内容来源于网络,其他为博主原创,所以难免会有一些小得瑕疵,敬请谅解. 所有示例均是博主测试过的,如有转载请标明出 ...

  3. 理解C#值类型与引用类型(摘录)

    本篇摘录自yandixin兄的Blog,读后,颇有收获,纯属收藏.:-) 原文地址:http://www.cnblogs.com/yandixin/archive/2008/03/03/truly-u ...

  4. 理解C#值类型与引用类型(收藏)

    从概念上看,值类型直接存储其值,而引用类型存储对其值的引用.这两种类型存储在内存的不同地方.在C#中,我们必须在设计类型的时候就决定类型实例的行为.这种决定非常重要,用<CLR via C#&g ...

  5. java 值类型与引用类型_JAVA 关于值类型和引用类型的区别

    Java中值类型和引用类型的不同? [定义] 引用类型表示你操作的数据是同一个,也就是说当你传一个参数给另一个方法时,你在另一个方法中改变这个变量的值,那么调用这个方法是传入的变量的值也将改变.值类型 ...

  6. .NET引用类型与值类型

    值类型和引用类型的基类 引用类型和值类型都继承自System.Object类.不同的是,几乎所有的引用类型都直接从System.Object继承,而值类型则继承其子类,即直接继承System.Valu ...

  7. 转:图解C#的值类型,引用类型,栈,堆,ref,out

    C# 的类型系统可分为两种类型,一是值类型,一是引用类型,这个每个C#程序员都了解.还有托管堆,栈,ref,out等等概念也是每个C#程序员都会接触到的概念,也是C#程序员面试经常考到的知识,随便搜搜 ...

  8. [你必须知道的.NET]第九回:品味类型---值类型与引用类型(中)-规则无边

    发布日期:2007.5.28 作者:Anytao ©2007 Anytao.com ,原创作品,转贴请注明作者和出处. 接上回[第八回:品味类型---值类型与引用类型(上)-内存有理]的探讨,继续我们 ...

  9. C#中值类型和引用类型

    C#中值类型和引用类型 http://www.cnblogs.com/123clb/archive/2011/03/03/1969712.html 概念: 1.值类型:数据存储在内存的堆栈中,从堆栈中 ...

最新文章

  1. 企业大数据平台仓库架构建设思路
  2. HttpClient 学习整理[转]
  3. different color in Chrome Development Tool
  4. HDU-3460 Ancient Printer 字典树
  5. 在线平互动台活动启动《Discover How to Make the Computer Easier to Use with Windows Vista》...
  6. ajax分片上传,ajax异步实现文件分片上传
  7. 电脑小写字母怎么切换_笔记本键盘切换的操作流程
  8. py 的 第 12 天
  9. 按中文排序List集合
  10. Xmodem Ymodem Zmodem 协议
  11. 2018年烽火通信c语言笔试题,2018-9-19 烽火通信C++面经
  12. 通信笑笑点(2010.08.14)
  13. Facebook登陆SDK接入(Android)
  14. IOS 7.1 在线安装IPA(OTA无线发布)整理
  15. 区块宝周报:区块链一周大事排行榜10.16
  16. 简单易懂的CRC校验原理阐述
  17. 梦幻新诛仙微信绑定没有服务器,独乐乐不如众乐乐,在《梦幻新诛仙》里交朋友居然这么简单?...
  18. java内存(java内存溢出的几种原因和解决办法)
  19. hiei乱谈系列:全面评述Web2.0
  20. [computer vision] Bag of Visual Word (BOW)

热门文章

  1. config done shell_shell do...done $config
  2. gsp计算机管理系的功能,药博士医药企业GSP管理系统功能介绍
  3. .so是什么文件_安卓 so 文件解析详解
  4. android 重启app_[Boot]Android系统启动-zygote篇
  5. 【算法】划分数 动态规划
  6. 关于批量启动微服务的jar包_分布式任务抢占及系统监控服务 Radish
  7. 用python实现TCP协议传输功能(客户端代码)
  8. lcx转发3389数据
  9. idea-jvm参数设置(有注释)
  10. 买卖股票的最佳时机III