我知道如果作为参数传递值类型 (int
, struct
, 等等),如果没有使用 ref
关键字,那么会传递该变量的副本到方法中;但是如果使用了 ref
关键字,则传递的是该变量的引用,而不是新的变量。
但对于引用类型,比如类,即使没有使用 ref
关键字,也会传递一个引用到方法中,而不是一个副本。那么,对于引用类型,使用 ref
关键字有什么用处呢?
以以下代码为例:
var x = new Foo();
以下两者有何区别?
void Bar(Foo y) {
y.Name = "2";
}
和
void Bar(ref Foo y) {
y.Name = "2";
}