关于向方法中传递参数的问题

本文深入解析了C#编程中的值类型与引用类型的区别,以及方法接受参数时的值传递与引用传递两种处理方式。通过4种组合情况的详细解释,帮助开发者理解如何在C#中灵活运用这些概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1. C#的变量分为两种,一种是值类型(如int),一种是引用类型(如我们自定义的所有的class)。简单的说,值类型自身就存放有值,如int i = 10,你可以理解成i就是实实在在的10;而引用类型

 
,MyClass obj = new Class(),obj--(保存在栈中)本身并不存放new Class()--(保存在堆中),他只是 指向 new Class() 。  
 
2. C#中的方法,会接受参数,对接受到的参数,C#也会有两种处理方法。一种是“值传递”(我们通常使用的就是这种),另一种是“引用传递” ,其特征就是关键字ref或out,如void MyMethod
 
(ref int para)。所谓值传递,就是给方法传递一个变量的“副本”,所以变量本身不会受到方法的影响;而引用传递,就是将变量本身传递给函数(不够严谨,但可以这样理解),所以,变量会受
 
到函数的影响。  
 
所以这里就有2*2=4种组合:
 
值类型的值传递     将值类型(如int i)的副本传递给方法
值类型的引用传递       将值类型(如int i)本身传递给方法
引用类型的值传递    将引用(如MyClass obj)的副本(而不是该引用所指向的内容new MyClass())传递给方法    
引用类型的引用传递     将引用本身(如MyClass obj)传递给方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值