有什么本质上的是“参考”点在物体通过由参
public function Foo(ref Bar bar)
{
bar.Prop = 1;
}
public function Foo(Bar bar)
{
bar.Prop = 1;
}
之间的差异。是不是一直引用的对象?
有什么本质上的是“参考”点在物体通过由参
public function Foo(ref Bar bar)
{
bar.Prop = 1;
}
public function Foo(Bar bar)
{
bar.Prop = 1;
}
之间的差异。是不是一直引用的对象?
问题是,你永远不会通过一个对象。您通过参考 - 而参数本身可以通过引用或值传递。如果你改变参数值本身,它们的行为会有所不同,例如将其设置为null
或另一个参考。用ref
这个改变会影响调用者的变量;没有ref
它只是一个拷贝被传递的值,所以调用者看不到他们变量的任何改变。
查看my article on argument passing了解更多详情。
是的。但如果你这样做:
public function Foo(ref Bar bar)
{
bar = new Bar();
}
public function Foo(Bar bar)
{
bar = new Bar();
}
然后你会看到不同之处。第一个传递给引用的引用,所以在这种情况下bar会变成你的新对象。第二,它没有。
我想你的意思是“argumetn本身可以通过引用或值传递”,而不是“通过参数或值”。或者我的词汇错了? – erikkallen 2009-04-08 11:22:35