我對C#
非常陌生,僅僅幾天就開始了。我想知道out
ref
this
以及任何其他與參數一起使用的關鍵字以及它們的實際用途是什麼。如果您可以將它們與VB.Net
進行比較將會非常有幫助。在C#中出``ref`'this'
-3
A
回答
3
out
和ref
對應於VB.NETByRef
。兩者的區別在於out
向編譯器發出的信號表示該參數僅用於輸出。這意味着事先不需要有意義的值(即不需要初始化)。編譯器會抱怨否則。在VB中,這不相關:未明確初始化的變量會自動初始化:
Dim i As Integer
將設置i
至0
。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#對您可能會有幫助。
相關問題
- 1. 在C++中定義ref類
- 2. C++中何時(this!= this)?
- 3. ref和庫C++/C#
- 4. C#lambda ref out
- 5. c#ref for speed
- 6. 在C++中返回「this」?
- 7. 'ref'屬性不能出現。在C#中驗證錯誤
- 8. 交換兩個變量,而在C#中使用REF /出
- 9. ref和out在C++/CLI
- 10. 如何在C#中使用ref#
- 11. 如何在c中使用ref屬性#
- 12. 託管C++ ref類
- 13. MessageQueue.BeginReceive()null ref error - c#
- 14. C#中的IDataObject :: SetData(ref FORMATETC formatetc,ref STGMEDIUM stgmedium,bool param)的實現
- 15. 我在使用this-> C++中出現錯誤
- 16. setOnClickListener(this)出錯
- 17. 「this」 指針(C++)
- 18. return * this C++
- 19. 過度使用`this`在C++
- 20. C++「this」指針在for_each
- 21. 在js文件中伸出$ this-> basePath()
- 22. jquery - 如何在html中輸出「$(this).val()」
- 23. 在C中'this'的主觀用法#
- 24. C#在類中使用'this'關鍵字
- 25. 如何在C++中傳遞「this」
- 26. 在節點樹中使用'this'的C++
- 27. 如何在C#中隱式隱含「this」?
- 28. 在C++中使用「this」指針
- 29. if(!this){return; }在C#中有意義嗎?
- 30. 「C#基類虛函數」 - 「在託管C++ ref類中覆蓋」
[MSDN](http://msdn.microsoft.com/en-us/library/x53a06bb(v = vs.71).aspx) –
如果你是從一個體面的來源學習它,你會學習每當它適合你的進步時,它就會及時發佈。爲什麼這麼不耐煩? – delnan
請買書。如果你有特定的問題,請在這裏發表你的努力來理解他們。 –