我在生成的代碼中看到了雙冒號(::
)。我想知道它的目的是什麼?::在C#中的目的是什麼?
回答
這是namespace alias qualifier operator。引用鏈接到MSDN頁面:
命名空間別名限定符(
::
)用於查找標識符。它總是位於兩個標識符之間,如本例:global::System.Console.WriteLine("Hello World");
它是範圍解析運算符:
http://en.wikipedia.org/wiki/Scope_resolution_operator
範圍解析運算符(::)在 C++用於與定義已經 聲明的成員函數(在 頭文件.hpp或.h 擴展名)
這是命名空間別名限定符。它用於具有相同名稱和相同名稱空間的兩種不同類型(來自不同程序集)的潛力。例如。我們的ORM產品與VistaDB 3和VistaDB 4對話。在這兩種情況下,連接類都是VistaDB.Provider.VistaDBConnection。因此,我們extern alias
VistaDB 3程序集到vdb3
和VistaDB 4程序集到vdb4
,現在可以將連接類消除歧義爲vdb3::VistaDB.Provider.VistaDBConnection
和vdb4::VistaDB.Provider.VistaDBConnection
。如果沒有別名限定符,這些會引發「模棱兩可的參考」編譯器錯誤。
但是你不能寫'vdb3.VistaDB.Provider.VistaDBConnection'和'vdb4 :: VistaDB.Provider.VistaDBConnection'嗎? –
- 1. 在C++中imbue的目的是什麼?
- 2. 什麼是C#目的?
- 3. 什麼是unordered_map C++中的條目
- 4. 目標C中的^是什麼意思?
- 5. visual C++中的win32項目是什麼?
- 6. 目標C中的「 - >」是什麼?
- 7. =的含義是什麼?在目標c
- 8. 在C/C++中從main()返回值的目的是什麼?
- 9. 目標C中C#中的對象的等價物是什麼?
- 10. 在c#中的類型推斷的目的是什麼
- 11. 什麼是在C#中的揮發性關鍵字的目的?
- 12. 在eclipse中CDT的目的是什麼?
- 13. 這段代碼在c#中做了什麼?它的目的是什麼?
- 14. 在C++中typedefing類的目的是什麼?
- 15. 「新」的不同目的是什麼在C#中可用
- 16. 在C++中重載操作符的目的是什麼?
- 17. 在C#中,標記靜態類的目的是什麼?
- 18. 這是什麼目的?在C#中的運算符?
- 19. 在C#中調用Dispose(IsDisposing)模式的目的是什麼?
- 20. C&C++中的'&'是什麼,它在perl中的等價操作符是什麼?
- 21. C# - Visual C#中這個語句的目的是什麼?
- 22. 目的C:什麼是「(id)發送者」?
- 23. 什麼是目標C的「stringWithContentsOfURL」替代?
- 24. 目標C的Nib文件是什麼?
- 25. 目標C中什麼是非空?
- 26. 「/ =」是什麼意思在目標c
- 27. 什麼?在C#中是什麼意思?
- 28. 什麼是C++中的塊?
- 29. Objective-C中的'^'是什麼
- 30. 什麼是C中的struct?
這是一個足夠體面的答案,但與C#相關的問題,而不是C++,如引用所示。幸運的是,在各種語言之間運算符的使用幾乎相同 –
它並不是真的「幾乎相同」:在C++中它用於在類聲明之外定義成員函數,在C#中用於消除類型名稱的歧義。 – itowlson
根據MSDN(http://msdn.microsoft.com/en-us/library/2hxce09y%28VS.80%29.aspx),C#的作用域解析運算符是。不是:: – Ferruccio