【C#】值类型和引用类型

本文主要探讨C#中的值类型和引用类型。值类型如整数,复制时会产生副本,修改副本不影响原始值。引用类型如类,复制时复制的是引用,修改会影响原始对象。C#中,类是引用类型,结构是值类型,数组、枚举、委托和接口有特殊规定。值类型在栈上分配,减少垃圾回收压力,引用类型在堆上分配。值类型参数传递时无法改变原始值,引用类型则可以。使用ref关键字可以改变变量引用本身。
摘要由CSDN通过智能技术生成

工作之外暂没有可以上手写的东西,这周主要内容还是对C#一些关于类型的知识进行巩固,涉及到的书籍主要是深入理解C#(第3版)

 

  • 值类型和引用类型

先从现实生活中的值和引用来讨论这点:

       假设你正在读一份报纸,觉得里面的内容很棒,希望一个朋友也去读,影印了报纸的全部内容并交给他。届时,他将获得属于他自己的一份完整的报纸。在这种情况下,我们处理的是值类型的行为。所有信息都在你的手上,不需要从任何其他地方获得。制作了副本之后,你的这份信息和朋友的那份是各自独立的。可以在自己的报纸上添加一些注解,他的报纸根本不会改变。
       再假设你正在读的是一个网页。与前一次相比,这一次,唯一需要给朋友的就是网页的URL。这是引用类型的行为,URL代替引用。为了真正读到文档,必须在浏览器中输入URL,并要求它加载网页来导航引用。另一方面,加入网页由于某种原因发生了变化(如一个维基页面,你在上面添加了自己的注释),你和你的朋友下次载入页面时,都会看到那个改变。

.NET中大多数类型都是引用类型

 类(使用class来声明)是引用类型,而结构(使用struct)来声明是值类型。特殊情况包括:
1.数组类型是引用类型,即使元素类型是值类型&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值