数值类型有值类型和引用类型两种,两种有不同是用法和定义
1、值类型的特点
①所有的值类型都隐式派生自Syste.ValueType
基于值类型的变量直接包含值。例如:
            int a = 5;
            int b = a;
            b = 10;
            Console.WriteLine(a);
 
当声明一个值类型的变量a时,这个变量被保存在线程堆栈中,这个时候在线程堆栈中有变量的名称,变量的类型还有变量的值,如果在声明一个变量b,把a赋值给b,此时只是把a的值赋给了b,b同时也在线程堆栈中,包括b的名称、类型和值,当执行第三句话后,b的值变成了10,并不影响a在线程堆栈中的值,所以打印出的a的值仍然是5
③每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。
2、引用类型的特点
①引用类型的变量又称为对象,可存储对实际数据的引用。
基于引用类型的变量不直接包含值,它的值存储在托管堆中。例如“
int[] arr1 = { 1};
            int[] arr2 = arr1;
            arr2[0] = 2;
            Console.WriteLine(arr1[0]);
分析例子:
定义一个数组arr1,它有一个元素,其值为1,这个时候在线程堆栈中只有数组的名称、类型和一个指向值的地址,元素的值被保存在了托管堆中,当把arr1 的值赋给arr2 时,只是在线程堆栈中保存arr2的地方又加了一个指向托管堆中元素之的地址,即元素的值自始至终只有一份在托管堆中,当arr2把元素的值改变后,要打印arr1的元素的值时也是改变后的值。

 

转载于:https://blog.51cto.com/mydotnet/351374

值类型和引用类型小解相关推荐

  1. 述说C#中的值类型和引用类型的千丝万缕

    关于值类型和引用类型方面的博客和文章可以说是汗牛充栋了,今天无意中又复读了一下这方面的知识,感觉还是有许多新感悟的,就此时间分享一下: CLR支持两种类型:值类型和引用类型,看起来FCL的大多数类型是 ...

  2. Java值类型与引用类型的不同

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

  3. php引用类型变量,PHP变量的值类型和引用类型

    PHP 变量在内存中保存的并不直接是值的内容而是值的地址.比如: $a = 1; 从表面上看起来似乎是 $a 直接存储了 1 这个值.但是实际情况是,PHP 解释器创建了变量 $a , 将值 1 存入 ...

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

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

  5. 值类型与引用类型的区别

    可以这样理解: 值类型保存的是具体的值 引用类型保存的是值的地址 例如 int a = 1; int b = a; b++; 这时b为2,a仍然是1 再看引用类型,例如有个类型是 User User ...

  6. 第2篇 C#数据类型-值类型与引用类型

    一 C#内存分配 在应用程序与操作系统之间有一个"中间人"--公共语言运行时(Common Language Runtime,CLR).它为应用程序提供内`存管理,线程管理和远程处 ...

  7. 栈和托管堆/值类型和引用类型/强制类型转换/装箱和拆箱[C#]

    一.栈和托管堆 通用类型系统(CTS)区分两种基本类型:值类型和引用类型.它们之间的根本区别在于它们在内存中的存储方式..NET使用两种不同的物理内存块来存储数据-栈和托管堆.如下图所示:     值 ...

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

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

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

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

  10. 值类型和引用类型在栈和堆中的分配

      类型基础及背后的工作原理   数据在内存中的分配与传递    值类型和引用类型它们在内存分配与传递上的区别 内存分配 首先要了解一下内存中栈和堆的概念.     栈(Stack) ##栈是一种先进 ...

最新文章

  1. task文件服务器无法输入,求助大神,win10的输入法无法使用,去开task sche
  2. 在html语言中frame,html Frame、Iframe、Frameset 的区别
  3. SQL Server 2005: 存储过程签名
  4. 原来它一直在“装嫩”|“心电图”揭秘富锂巨星真实年龄
  5. eclipse一套全部流程的安装及配置
  6. 湛江市计算机等级考试,2020广东省湛江市计算机等级考试注意事项
  7. 大数据会如何影响VC领域?
  8. DB2数据库添加 更改字段
  9. 项目范围管理:范围定义
  10. 知识产权保护案例分析----CodeMeter在刺绣机行业中的运用
  11. 蓉叶云库——简单介绍seo技术
  12. 实现Discord聊天机器人
  13. Spring Boot(一)之入门篇
  14. 【脚本语言系列】关于Python测试工具lettuce
  15. ODC预端接光纤配线箱
  16. CorelDraw插件开发-VBA-常用功能-二维码创建-cdr插件
  17. 3D模型在线云转换和在线展示
  18. 华为语音合成服务,为用户提供实时、可替换、多音调的语音播放体验
  19. 仅改变rowspan背景_山西耗资10亿的小镇,人称长治“小周庄”,距市中心仅16公里...
  20. 集通字库芯片GT20L16S1Y 读取字体数据

热门文章

  1. 中国银行业100强名单发布
  2. XTP: 从XTP看Rust与C++接口FFI通信
  3. (转)黑石帝国崛起的30年
  4. 李扬:2018春节港澳游(上篇:行)
  5. php命令模式,老生常谈PHP面向对象之命令模式(必看篇)
  6. 【数据预测】基于matlab双向长短时记忆(biLSTM)数据预测【含Matlab源码 1793期】
  7. 【细胞分割】基于matlab GUI生物细胞计数【含Matlab源码 758期】
  8. python pos函数_从0入门Python — 4. 函数
  9. 怎样理解电脑评分_电脑可以理解我们的情绪吗?
  10. 计算机组成与系统 报告,计算机组成与系统结构课设报告.docx