我知道如果我将值类型(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";
}