c++里用的是引用&;
但发现&在c#里用不了。
怎么将两变量值完全交换。
ps:int tmp;
tmp = x;
y = tmp;不管用,x,y只是临时的交换,并不是永久交换。如何是好?

解决方案 »

  1.   


    int tmp;
    tmp = x;
    x = y;
    y = tmp;丢了一行,不过没影响
      

  2.   

    传引用进来,或使用out参数,或使用unsafe代码;
      

  3.   

    月经贴...在.NET中奇技淫巧不受欢迎...
      

  4.   

    eg:
    public void Swap(ref int x, ref int y)
    {
     int tmp;
     tmp = x;
     x = y;
     y = tmp;
    }调用 
    int x = 1;
    int y = 2;
    Swap(ref x,ref y);
      

  5.   

    public void Swap<T>(ref T x, ref T y) {T z = x; x = y; y = z; } 
      

  6.   

    看错了,无视4楼吧...你的问题是没理解.NET的参数传递默认是按值传递副本的,必须显式加ref或out修饰符...