同步学习C#笔记13(价值和引用)

引用定义

举一个例子

s1 代表在学生类中的一个对象,名字小明,8岁

s2 = s1

s1是学生对象小明,那么s2是谁?

结果是打印结果相同,那么s1和s2 到底是内容相同,还是说根本就是同一个对象

我们可以做一个测试验证一下:

将s1后定义成—> 小明,10岁后打印s1和s2

结果是修改s1的分数后,打印出的s2也随之修改。这就充分说明了,s1和s2不是两个相等的,内容相同的对象,而根本就是同一个对象。


这就涉及到编程里的一个核心概念,也就是引用。(引用变量赋值)

变量通过一个箭头间接的指向一个对象就叫做引用。

通过案例我们可以发现一个矛盾,s1和s2可以比作两个不同的盒子,但是这两个盒子里却装着同一个对象,这与常识不符。这也就推翻了值类型的概念:s1和s2并不直接装载对象,他们只是装载了一个箭头,而两个不同的箭头共同指向了”小明“对象。

但讲到函数的时候说盒子里装了一个对象,怎么现在变成了箭头,难道值类型被推翻了?不是的,在C#中,既有引用类型,也有值类型。


值类型和引用类型

所有的变量类型分为两种——值类型struct,引用类型class

值类型

-基本数据类型。int, bool, float, double, char, byte, short 等等, 不包括string

引用类型

-除值类型以外都是引用类型,包括字符串、数组、Random、Student等等


值类型和引用类型,最明显的区别就在于赋值操作的含义不同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值