不能在方法中更改参数的引用对象

时间:2011-09-04 03:50:37

标签: c#

    void Swap(Empolyee lhs, Empolyee rhs) {
        Empolyee tmp = lhs;
        lhs = rhs;
        rhs = tmp;
    }

我想使用此方法交换两个Employees,但它不起作用。虽然它在参数上强加 ref 关键字后起作用,但我想知道前者不起作用的原因。因为C#中的每个对象都是引用类型,所以我认为它应该可行。我期待着你的帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

 void Swap(ref Empolyee lhs, ref Empolyee rhs) {
    Empolyee tmp = lhs;
    lhs = rhs;
    rhs = tmp;
 }

然后致电:

  Swap(ref lhs, ref  rhs);