C# 引用类型与ref

  1、首先来解释一下C#中的类型

     在C#中每一种类型要么是值类型,要么是引用类型。所以每个对象要么是值类型的实例,要么是引用类型的实例。并且在C#中对象的分配模式取决于对象的实现方式,即值类型使用静态分配,引用类型使用动态分配。即便是在进行值类型实例化的时候使用new关键字进行实例化也不会改变实例的分配方式,在这种情况下new操作法仅起到向构造函数传递参数的作用。

     C#中的引用是一个不同于引用类型的概念,它介于C++中的指针和引用之间。可以是一个到对象的引用,所有该对象的可访问成员都可以通过“.”操作法进行访问;引用可以为空;引用可以被修改(这里要注意在方法参数中使用ref关键字的结果) ;不能够访问对象的物理空间,即对象的实际地址。

2、引用类型和值类型代码示例

  

3、在方法中修改引用类型的范例

 

输出结果如下:

可见对于添加ref关键字的引用类型,其效用就在于能够在方法内部对引用的指向进行修改。如果不添加ref关键字,那么其作用仅限于通过引用修改该引用所指向的对象的内部状态(对象的字段等)。

4、ref 与string

C#中string类具有三大特点,即sealed、等价比较、实例创建后的不可变性。

 

 

 

5、总结

ref(引用型参数)对方法的数据传递是通过实际值的内存地址来传递的,所以说对其的改变将影响到它实际的内存地址。如果ref 作用于引用类型,那么意味着可以修改引用本身的值,即修改引用的指向。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值