在C#语言中,传递参数的方式有两种:值传递和引用传递。
在介绍这两种参数传递方式我们先简单理解一下值类型和引用类型。
在C#语言中的char,int,short,long,byte,float,double,boolean类型都是值类型,另外enum枚举类型和struct结构类型也是值类型。
而string字符串,类,接口,委托等就属于引用类型了,其中string字符串是一种特殊的引用类型。
关于值类型和引用类型的存储方式也不相同,值类型是直接保存在内存中,而引用类型存放的是一个内存的地址。这个就是主要影响值传递和引用传递的原因。
传递参数
既可以通过值也可以通过引用传递参数,通过引用传递参数允许函数成员(方法、属性、索引器、运算符和构造函数)更改参数的值,并保持该更改。
值传递
值传递就是在传递参数时,将实际参数复制了一份传递到方法中,这样在我们的方法中如果对参数进行了修改就不会影响到我们的实际参数。
对于值传递如果我们没有定义特殊的关键字来说明,那么在调用方法时就会默认使用值传递的方式进行参数传递。
例:
引用传递
如果我们使用引用传递调用方法时我们的实际参数和形式参数都是指向同一个内存地址,如果我们在方法中修改了形式参数就会影响到实际参数。
例:
在开头我们说过值类型和引用类型,值类型一般是以值传递的方式来传递参数,而引用类型一般是以引用传递来传递参数。
C#中的ref关键字
如果我们使用值类型进行参数传递时,想要使用值类型参数传递时使用引用传递类进行传参,可以使用ref关键字。
例:
版权归原作者 她与疾風 所有, 如有侵权,请联系我们删除。