我看了类似的问题,并阅读了一些文章。 THis文章有一些图片说明了这一点。传递参考和使用参考
SomeObject so = new SomeObject();
somefunction(so);
Console.write(so.x); // will print 1
SomeObject so1 = new SomeObject();
somefunctionByRef(so1);
Console.write(so1.x); // will print 1
static void somefunction(SomeObject so)
{
so.x = 1;
}
public void somefunctionByRef(ref SomeObject so)
{
so.x = 1;
}
这两种方法对这个参考类型都有相同的效果。那么为什么选择ref
关键字作为参考类型?
使用somefunction(SomeObject所以)并修改方法内的对象并期望更改而不使用ref关键字是一种糟糕的做法(可能为false)?
那么为什么选择参考类型ref关键字? – DarthVader 2010-08-05 02:18:54
所以你想要做什么? – ronaldwidha 2010-08-05 02:20:59
通过使用'ref',您可以从不同的函数中更改变量引用的对象。注意赋值'so = null;' – 2010-08-05 02:24:11