ref和out的使用不仅限于传递值类型。它们也可以使用 何时传递参考。当ref或out修改引用时,它会引起引用, 本身,通过引用传递。这允许一种方法改变引用的对象 是指。
这部分是什么意思?
当ref或out修改引用时,它会引用引用, 本身,通过引用传递。这允许一种方法改变引用的对象 是指。
答案 0 :(得分:2)
这意味着通过使用ref
,您可以更改变量指向的对象,而不仅仅是对象的内容。
假设你有一个带有ref
参数的方法,它取代了一个对象:
public static void Change(ref StringBuilder str) {
str.Append("-end-");
str = new StringBuilder();
str.Append("-start-");
}
当你调用它时,它会改变你用它调用它的变量:
StringBuilder a = new StringBuilder();
StringBuilder b = a; // copy the reference
a.Append("begin");
// variables a and b point to the same object:
Console.WriteLine(a); // "begin"
Console.WriteLine(b); // "begin"
Change(b);
// now the variable b has changed
Console.WriteLine(a); // "begin-end-"
Console.WriteLine(b); // "-start-"
答案 1 :(得分:1)
您可以这样做:
MyClass myObject = null;
InitializeIfRequired(ref myObject);
// myObject is initialized
...
private void InitializeIfRequired(ref MyClass referenceToInitialize)
{
if (referenceToInitialize == null)
{
referenceToInitialize = new MyClass();
}
}