关于C#的引用&值传递弱弱的问几句.
学.NET也有一段时间了,对引用的几点不太明了.我理解的对不对,不能迷糊下去了
在class的方法里.我们用swap作例子.
public void swap(int a,int b)
{
int temp;
temp=a;
a=b;
b=temp;
}
1.按值方式传值类型==C/C++方式,将不会改变传入的a,b值
2.按引用方式值值类型==C/C++方式,即(public void swap(ref int a,ref int b))将改变传入的a,b值
3.按值方式传递引用类型,将交换a.b值,这点和C/C++是相反的吧.? ---> 问题1
public void swap(obj a,obj b)
{
obj temp;
temp=a;
a=b;
b=temp;
}
4,按引用传递引用类型,即(public void swap(ref obj a,ref obj b))效果同3.造成a.b交换.
问题一:3.按值方式传递引用类型,将交换a.b值,这点和C/C++是相反的吧.?
问题二:C#中3和4,按引用或不按引用,效率上的区别,在C/C++里,这里就是用指针会提高效率,那么C#咧?
真诚求教
------解决方案--------------------引用传参就是传引用,值传参就是传值,当然string引用类型是例外,
值-> 引用,要boxing装箱,
引用-> 值,要unboxing拆箱,都是有性能损失的