首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

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

2012-02-12 
关于C#的引用&值传递弱弱的问几句.学.NET也有一段时间了,对引用的几点不太明了.我理解的对不对,不能迷糊下

关于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拆箱,都是有性能损失的

热点排行