2011-07-31 41 views
-3

我對C#非常陌生,僅僅幾天就開始了。我想知道outrefthis以及任何其他與參數一起使用的關鍵字以及它們的實際用途是什麼。如果您可以將它們與VB.Net進行比較將會非常有幫助。在C#中出``ref`'this'

+0

[MSDN](http://msdn.microsoft.com/en-us/library/x53a06bb(v = vs.71).aspx) –

+1

如果你是從一個體面的來源學習它,你會學習每當它適合你的進步時,它就會及時發佈。爲什麼這麼不耐煩? – delnan

+1

請買書。如果你有特定的問題,請在這裏發表你的努力來理解他們。 –

回答

3
  • outref對應於VB.NET ByRef。兩者的區別在於out向編譯器發出的信號表示該參數僅用於輸出。這意味着事先不需要有意義的值(即不需要初始化)。編譯器會抱怨否則。

    在VB中,這不相關:未明確初始化的變量會自動初始化:Dim i As Integer將設置i0

  • this用於擴展方法,對應於在VB中使用Extension attribute

  • 最後,有params它對應於VB中的ParamArray,並以完全相同的方式使用。

0

out和ref是通過引用而不是按值傳遞參數的方法。如果你通過值發送一個參數(沒有在ref或out前面添加它的名字),那麼在調用的方法體中參數的任何改變都不會改變原始的發送參數。但是通過ref或out發送參數,被調用方法體的任何變化都會改變原始發送的參數。

關於'這'。每當你使用這個方法調用某個方法或字段時,實際上就是訪問類字段或方法。

0

對於初學者,here's列出了所有c#關鍵字。但要解釋你提到的那些。

  • 「this」;相當於VB.net:「我」。允許從實例中訪問實例。
  • 「ref」;等同於VB.net:「ByRef」。通過引用一個函數來傳遞一個值,而不是它的一個副本。這僅適用於值類型(結構體,整數,雙精度,字節等)。使用ref參數傳遞引用類型(類/對象)意味着您正在使指向該對象的指針可修改。
  • 「out」; VB.net equivalnt:不確定,也許ByRef。允許函數將值放入調用程序傳遞給函數的特定變量中。這意味着變量不需要初始化爲默認值,因爲使用out參數聲明的函數需要爲調用者初始化它。

Comparing VB.Net and C#對您可能會有幫助。