在C#中`out``ref`'this'

时间:2011-07-31 11:09:32

标签: c#

我对C#很新,只是开始几天。我想知道out ref this的确切用法以及参数使用的任何其他关键字及其实际用途。如果您可以将它们与VB.Net进行比较,那将非常有用。

3 个答案:

答案 0 :(得分:3)

  • outref对应于VB.NET中的ByRef。两者之间的区别是out向编译器发出信号,表明该参数仅用于输出。这意味着它不需要事先具有有意义的值(即,它不需要初始化)。否则编译器会抱怨。

    在VB中,这是不相关的:未显式初始化的变量会自动初始化:Dim i As Integer会将i设置为0

  • this用于扩展方法,对应于在VB中使用Extension attribute

  • 最后,params对应于VB中的ParamArray,并以完全相同的方式使用。

答案 1 :(得分:0)

out和ref是通过引用而不是通过值将参数传递给方法的方法。如果按值发送参数(不使用ref或out为其命名前缀),对调用方法体中的参数的任何更改都不会更改原始发送参数。但是通过ref或out发送参数,被调用方法体的任何变化都将改变原始发送的参数。

关于'这个'。无论何时使用此方法调用某个方法或字段,实际上都可以访问类字段或方法。

答案 2 :(得分:0)

对于初学者,here's列出了所有c#关键字。但要解释你已经具体提到过的那些。

  • “这个”; VB.net等价:“我”。允许从实例中访问实例。
  • “REF”; VB.net等价:“ByRef”。通过引用函数传递值,而不是它的副本。这仅适用于值类型(结构,int,double,byte等)。使用ref参数传递引用类型(类/对象)意味着您正在使指向对象的指针可修改。
  • “出”; VB.net等价:不确定,也许是ByRef。允许函数将值放入调用者传递给函数的特定变量中。这意味着变量首先不需要初始化为默认值,因为使用out参数声明的函数需要为调用者初始化它。

Comparing VB.Net and C#可能对您有用。