C#中的值传递和引用传递

在C#语言中,传递参数的方式有两种:值传递和引用传递。

在介绍这两种参数传递方式我们先简单理解一下值类型和引用类型。

在C#语言中的char,int,short,long,byte,float,double,boolean类型都是值类型,另外enum枚举类型和struct结构类型也是值类型。

而string字符串,类,接口,委托等就属于引用类型了,其中string字符串是一种特殊的引用类型。

关于值类型和引用类型的存储方式也不相同,值类型是直接保存在内存中,而引用类型存放的是一个内存的地址。这个就是主要影响值传递和引用传递的原因。

传递参数

既可以通过值也可以通过引用传递参数通过引用传递参数允许函数成员(方法、属性、索引器、运算符和构造函数)更改参数的值,并保持该更改。

值传递

值传递就是在传递参数时,将实际参数复制了一份传递到方法中,这样在我们的方法中如果对参数进行了修改就不会影响到我们的实际参数。

对于值传递如果我们没有定义特殊的关键字来说明,那么在调用方法时就会默认使用值传递的方式进行参数传递。

例:

 

引用传递

如果我们使用引用传递调用方法时我们的实际参数和形式参数都是指向同一个内存地址,如果我们在方法中修改了形式参数就会影响到实际参数。

例:

 

 

在开头我们说过值类型和引用类型,值类型一般是以值传递的方式来传递参数,而引用类型一般是以引用传递来传递参数。

C#中的ref关键字

如果我们使用值类型进行参数传递时,想要使用值类型参数传递时使用引用传递类进行传参,可以使用ref关键字。

例:

 

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值