引用类型的变量不直接包含其数据;它包含对其数据的引用。 如果按值传递引用类型参数,则可能更改属于所引
用对象的数据,例如类成员的值。 但是,不能更改引用本身的值;例如,不能使用相同引用为新对象分配内存,并
将其保留在方法外部。 为此,请使用 ref 或 out 关键字传递参数。 为简单起见,下面的示例使用 ref
示例1:
var bClass = new BaseClass() { Number =30};
bClass.Method1();
Console.WriteLine(bClass.Number);
Test( bClass);
Console.WriteLine(bClass.Number);
Console.ReadKey();
void Test( BaseClass baseClass)
{
baseClass = new BaseClass
{
Number = 100
};
}
运行结果
如果方法中不希望更改引用类型指向,可以使用关键字 in
如果要想实现,预想情况可以使用ref关键字
var bClass = new BaseClass() { Number =30};
bClass.Method1();
Console.WriteLine(bClass.Number);
Test(ref bClass);
Console.WriteLine(bClass.Number);
Console.ReadKey();
void Test(ref BaseClass baseClass)
{
baseClass = new BaseClass
{
Number = 100
};
}