ref和out关键字有什么区别?


我正在创建一个函数,我需要传递一个对象,以便它可以被函数修改。有什么区别:

public void myFunction(ref MyClass someClass)

public void myFunction(out MyClass someClass)

我应该使用哪一个?为什么?

ref 告诉编译器在进入函数之前对象被初始化,而 out `告诉编译器该对象将在函数内被初始化。

因此,ref是双向的,out是out-only。

ref修饰符表示:

  • 这个值已经设置好了,
  • 该方法可以读取和修改它。

out修饰符表示:

  • 值未设置,直到设置才能被 方法读取。
  • 方法必须 在返回前设置它。

未经作者同意,本文严禁转载,违者必究!