当前位置: 代码迷 >> ASP.NET >> 关于C#的引用&值传递几句
  详细解决方案

关于C#的引用&值传递几句

热度:4991   发布时间:2013-02-26 00:00:00.0
关于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拆箱,都是有性能损失的
  相关解决方案