学.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#咧?真诚求教

解决方案 »

  1. TO:lovedelphi2006() 
    SORRY,我的教育不是大学给我的,大学没教给我任何东西,我所学的都是自学的我想有些东西必须真的弄懂了.书上没有说到效率,所以来请教.别光说不练,问题虽弱智型.你并没有给说清楚.你心虚.
      

  2. 引用传参就是传引用,值传参就是传值,当然string引用类型是例外,
    值->引用,要boxing装箱,
    引用->值,要unboxing拆箱,都是有性能损失的
      

aliyun

类似问题 »