Jam*_*ord 4 c# reference object immutability
可能重复:
C#:为什么'ref'和'out'不支持多态?
我似乎无法理解为什么以下在C#中不起作用:
public static void Swap(ref Object a, ref Object b) {
Object t = b;
b = a;
a = t;
}
//Calls
String fname = "Ford";
Strinf lname = "James";
Swap(ref lname, ref fname);
Run Code Online (Sandbox Code Playgroud)
这是因为String已经引用了一个char数组,它是不可变的吗?
这是重复的
看到答案为什么它不起作用.
为了使它工作,你可以制作一个通用的方法:
public static void Swap<T>(ref T a, ref T b)
{
T t = b;
b = a;
a = t;
}
Run Code Online (Sandbox Code Playgroud)
现在所有类型都退房了.