值类型和引用类型小解
①所有的值类型都隐式派生自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[] arr2 = arr1;
arr2[0] = 2;
Console.WriteLine(arr1[0]);
分析例子:
定义一个数组arr1,它有一个元素,其值为1,这个时候在线程堆栈中只有数组的名称、类型和一个指向值的地址,元素的值被保存在了托管堆中,当把arr1 的值赋给arr2 时,只是在线程堆栈中保存arr2的地方又加了一个指向托管堆中元素之的地址,即元素的值自始至终只有一份在托管堆中,当arr2把元素的值改变后,要打印arr1的元素的值时也是改变后的值。
转载于:https://blog.51cto.com/mydotnet/351374
值类型和引用类型小解相关推荐
- 述说C#中的值类型和引用类型的千丝万缕
关于值类型和引用类型方面的博客和文章可以说是汗牛充栋了,今天无意中又复读了一下这方面的知识,感觉还是有许多新感悟的,就此时间分享一下: CLR支持两种类型:值类型和引用类型,看起来FCL的大多数类型是 ...
- Java值类型与引用类型的不同
[定义] 引用类型表示你操作的数据是同一个,也就是说当你传一个参数给另一个方法时,你在另一个方法中改变这个变量的值,那么调用这个方法是传入的变量的值也将改变. 值类型表示复制一个当前变量传给方法,当你 ...
- php引用类型变量,PHP变量的值类型和引用类型
PHP 变量在内存中保存的并不直接是值的内容而是值的地址.比如: $a = 1; 从表面上看起来似乎是 $a 直接存储了 1 这个值.但是实际情况是,PHP 解释器创建了变量 $a , 将值 1 存入 ...
- C#之值类型和引用类型
本文意在巩固基础知识,并不是对其进行深入剖析,还望理解. 本文是对此项知识的整理文,有些内容来源于网络,其他为博主原创,所以难免会有一些小得瑕疵,敬请谅解. 所有示例均是博主测试过的,如有转载请标明出 ...
- 值类型与引用类型的区别
可以这样理解: 值类型保存的是具体的值 引用类型保存的是值的地址 例如 int a = 1; int b = a; b++; 这时b为2,a仍然是1 再看引用类型,例如有个类型是 User User ...
- 第2篇 C#数据类型-值类型与引用类型
一 C#内存分配 在应用程序与操作系统之间有一个"中间人"--公共语言运行时(Common Language Runtime,CLR).它为应用程序提供内`存管理,线程管理和远程处 ...
- 栈和托管堆/值类型和引用类型/强制类型转换/装箱和拆箱[C#]
一.栈和托管堆 通用类型系统(CTS)区分两种基本类型:值类型和引用类型.它们之间的根本区别在于它们在内存中的存储方式..NET使用两种不同的物理内存块来存储数据-栈和托管堆.如下图所示: 值 ...
- 理解C#值类型与引用类型(收藏)
从概念上看,值类型直接存储其值,而引用类型存储对其值的引用.这两种类型存储在内存的不同地方.在C#中,我们必须在设计类型的时候就决定类型实例的行为.这种决定非常重要,用<CLR via C#&g ...
- java 值类型与引用类型_JAVA 关于值类型和引用类型的区别
Java中值类型和引用类型的不同? [定义] 引用类型表示你操作的数据是同一个,也就是说当你传一个参数给另一个方法时,你在另一个方法中改变这个变量的值,那么调用这个方法是传入的变量的值也将改变.值类型 ...
- 值类型和引用类型在栈和堆中的分配
类型基础及背后的工作原理 数据在内存中的分配与传递 值类型和引用类型它们在内存分配与传递上的区别 内存分配 首先要了解一下内存中栈和堆的概念. 栈(Stack) ##栈是一种先进 ...
最新文章
- task文件服务器无法输入,求助大神,win10的输入法无法使用,去开task sche
- 在html语言中frame,html Frame、Iframe、Frameset 的区别
- SQL Server 2005: 存储过程签名
- 原来它一直在“装嫩”|“心电图”揭秘富锂巨星真实年龄
- eclipse一套全部流程的安装及配置
- 湛江市计算机等级考试,2020广东省湛江市计算机等级考试注意事项
- 大数据会如何影响VC领域?
- DB2数据库添加 更改字段
- 项目范围管理:范围定义
- 知识产权保护案例分析----CodeMeter在刺绣机行业中的运用
- 蓉叶云库——简单介绍seo技术
- 实现Discord聊天机器人
- Spring Boot(一)之入门篇
- 【脚本语言系列】关于Python测试工具lettuce
- ODC预端接光纤配线箱
- CorelDraw插件开发-VBA-常用功能-二维码创建-cdr插件
- 3D模型在线云转换和在线展示
- 华为语音合成服务,为用户提供实时、可替换、多音调的语音播放体验
- 仅改变rowspan背景_山西耗资10亿的小镇,人称长治“小周庄”,距市中心仅16公里...
- 集通字库芯片GT20L16S1Y 读取字体数据
热门文章
- 中国银行业100强名单发布
- XTP: 从XTP看Rust与C++接口FFI通信
- (转)黑石帝国崛起的30年
- 李扬:2018春节港澳游(上篇:行)
- php命令模式,老生常谈PHP面向对象之命令模式(必看篇)
- 【数据预测】基于matlab双向长短时记忆(biLSTM)数据预测【含Matlab源码 1793期】
- 【细胞分割】基于matlab GUI生物细胞计数【含Matlab源码 758期】
- python pos函数_从0入门Python — 4. 函数
- 怎样理解电脑评分_电脑可以理解我们的情绪吗?
- 计算机组成与系统 报告,计算机组成与系统结构课设报告.docx