Possible Duplicate:
C# : Why doesn't 'ref' and 'out' support polymorphism?
I can't seem to understand why the following does not work in 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);
Is this because String already references to a char array, its immutable?