问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于C#的ref引用传参描述怎样理解比较好

发布网友 发布时间:2022-05-19 18:11

我来回答

1个回答

热心网友 时间:2023-10-15 20:43

这个例子笼统来看,是正确的,但举得确实不怎么高明,如果用它来理解ref,分明有越搅越浑之嫌。如果严格来看,这个例子甚至是不正确的。

我们知道,C#里的数据类型分为两类,一是值类型,一是引用类型。ref只针对值类型使用。值类型有一个最大的特点,就是你把它赋给任何“人”,它都是采用“复制”方式。如果我们也举一个例子,相当于有人来找你出去,作为值类型的你并没有亲自去,而是临时“克隆”了一个自己,派这个“克隆你”去。结果是如何呢?那个克隆的你在外面不管发生了什么事,玩嗨了也好,受伤了也罢,都不会影响你。引用类型就不同了,引用类型的你总是“亲力亲为”,谁叫你你都亲自去,所以任何变化都发生在自己身上。
那么有时候,程序员也希望值类型的你能够直接一些,叫你去就是想对你做些改变,怎么办呢?那就要用ref修饰来明确告诉你,你必须亲自来。当然了,你亲自去的后果就是有什么玩嗨了,受伤了的事情,就直接承受在你自己身上。
总结来说呢,你可以认为,一个加了ref的值类型参数,你可以临时把它看成是一个引用类型。
写完之后,发现这个例子好像也不是特别生动,倒有些恐怖,不知道对你有没有帮助。追问感谢,调试的时候其实看到不用ref修饰后内存地址是不相同的,我就感觉我的那个例子有些不恰当,但是跳转到函数里面后,原来的内存地址是不可用的,就让我很纠结

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电脑文件编辑好如何发送给微信如何把电脑上的文件发到微信上 笔记本电脑上的文件发送到微信怎么把电脑里的文件传到手机微信 我每天早晨吃米糊放白糖有害吗? 吃糖太多对我有好处么! 适合明年工作计划开头的句子 让人耳目一新的年度工作计划开头句子锦集五十四句 个人年度工作计划开头优美句子 让上司眼前一亮的工作计划开头语收藏四十一句 工作计划开头 怎么写工作计划开头 新干线0系电动列车的运行设备 如何分辨苏-27及其发展型号(如苏30,33,34,35等) 刀锋2500移动硬盘多大 ubstore怎么处理照片 电力金具ub-0770适用多大的孔径 利用C语言读取含文件头的txt文本并将学生信息和成绩分别保存到数组? 日本人的复数用英语说要不要加s说明是加喷腻子 【初二】问一下关于American,Japanese和等等的英语复数形式 日本人的英语怎么写? 日本人的复数形式英语 哺乳期自己喝母乳会不会提高免疫力? 银行夫妻共同所有房贷还不上会怎么处理 夫妻一方银行贷款还不上能影响另一方吗? 帮老公贷款现在还不上怎么办 利用C语言编写程序 沙特阿拉伯和中国军事哪一个强 沙特对中国背信弃义,到底是蓄意已久还是自取其 如果2002年的中国足球队和沙特队打一局,谁可能会赢? 足球中国与沙特是北京时间什么时候举行? 中国和沙特关系好吗 沙特和中国的关系 C#中ref,out类型参数的区别和params类型参数的用法 如何理解用out或ref修饰的引用类型的参数(不是用ref out 修饰值类型)? 写出数组定义的几种方式,数组是说明类型的吗?(数据类型? 值类型? JAVA中有ref关键字吗?) c# 中 ref参数到底是什么 ?该怎么用? C# ref参数问题 利用C语言完成下面的题目. 为什么我用银行卡的钱在网上买东西,然后没有短信的提醒? 球球大作战猎魔怎么定位 球球大作战猎魔模式定位教程 球球大作战猎魔模式怎么玩? 球球大作战猎魔模式怎么单挑 我是开商店的请问有没有微信或支付宝收款自动返还百分比的二维码,返还百分比可以自己随意调节掌控的那种 球球大作战的猎魔模式怎么选位置 如何通过筛选将excel中不需要的部分隐藏起来 excel表筛选一行怎么让它自动隐藏没有内容的单元格(或者也可以说隐藏没内容的列) excel如何筛选隐藏的数据单元格 肿胀和叮嘱、恐惧、花圃在现代汉语词典里的意思是什么? 爸爸的花儿落了的生字拼音 利用c语言编写一个函数 吴谨言发冬日养生特饮教程,这款饮料真的有养生的效果吗? 为什么2233卡看B站视频现在是显示联通4G而不是联通免流量了,在线等