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

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

public void myFunction(ref MyClass someClass)

public void myFunction(out MyClass someClass)

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


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

因此,尽管ref是两路, out是出只。


ref修饰符意味着:

  • 该值已经设置好了
  • 该方法可以读取和修改它。
  • out修饰符意味着:

  • 该值没有设置,直到它被设置时才能被该方法读取。
  • 该方法必须在返回之前设置它。

  • 假设Dom在彼得的小隔间出现关于TPS报告的备忘录。

    如果Dom是一个参考论据,他会有一份备忘录的印刷本。

    如果Dom是一个争论点,他会让Peter打印一份备忘录的新副本,供他随身携带。

    链接地址: http://www.djcxy.com/p/12807.html

    上一篇: What's the difference between the 'ref' and 'out' keywords?

    下一篇: Casting: (NewType) vs. Object as NewType