訪問修飾符(如public和virtual等)可以自定義類或屬性的行爲。所以他們的行爲類似於屬性。但他們內部工作如何?他們是否調用.Net類庫中的任何代碼或任何屬性?C#中修飾符的基礎結構和行爲#
回答
不,public
是access modifier。 Virtual
是一個正確表示的關鍵字,雖然它們都沒有特別引用任何.NET庫。他們不提及任何屬性,將它們稱爲屬性就不正確。 Attributes明顯不同。
他們在內部如何工作?
請參考上面提供的鏈接。
他們是否調用.Net類庫中的任何代碼或任何屬性?
不,如前所述,它們與屬性截然不同,並且不與任何.NET庫關聯。
不,它們分別告訴C#編譯器如何在可訪問性和繼承性方面處理該方法。
它們與.Net類庫無關。而且,「屬性」一詞在C#的上下文中有着非常明確的含義,並且與這些關鍵字無關。
公共和虛擬基本上是保留字,這意味着它們具有特定的含義。 當編譯器識別這些保留字時,它將採取在設計架構中定義的必要操作。因此,用戶無法將保留字聲明爲標識符。我認爲他們不會引用類似數據類型的東西(數據類型將在內部引用,因爲它們被設計爲結構)。
它們是語言的一部分。它們被稱爲keywords
,它們是由該語言保留的,並且將在編譯器中根據它們的功能進行明確分析。他們被保留,所以你不能做這樣的事情:
User public = new User();
在此我使用了「公衆」的關鍵字作爲變量名,這是C#語法是非法的。如果發現某個關鍵字使用不當,編譯器將無法編譯您的代碼。 (經常在IDE中,如果出現錯誤,編譯器甚至不會調用)
有一點要注意,它們不是運算符。 (如+ - =)。運營商在許多方面可能會超載(您可以定義他們如何改變數據)。在C#中(我不能擔保其他語言),關鍵字不能重載。
編程語言中的keyword
通常用於告訴編譯器如何處理特定上下文中的特定代碼。使用某些關鍵字的某些效果比其他效果更明顯。有點像這個代碼在做什麼的提示(在你的情況下,它的保護級別是什麼)。每個keyword
都有自己的規則。例如,LINQ有自己的運營商,如as
,where
,select
,它不能像public
,protected
和private
那樣使用。
有關C#關鍵字的更多信息,請查看以下內容:
的公共關鍵字是編譯器,被稱爲訪問修飾符的指令。這意味着你打算讓一個類型或成員公開訪問,即以無限制的方式訪問。
微軟形容了相當不錯的位置:
http://msdn.microsoft.com/en-us/library/yzh058ae(v=vs.80).aspx
的虛擬關鍵字是另一指令編譯器。它是一種不同的修飾符而不是公共。它不涉及訪問。而是表示您打算能夠覆蓋派生類中給定方法/屬性的行爲。
微軟有很好的描述在這裏:
http://msdn.microsoft.com/en-us/library/9fkccyh4(v=vs.71).ASPX
兩人都不以任何方式涉及到屬性,這是完全不同的概念。他們在這裏描述:
- 1. 私有和公共java訪問修飾符基礎知識
- 2. Python列表結構修飾
- 3. C數據結構或核心基礎?
- 4. Swift 2.0和基礎枚舉/結構體?
- 5. 如何爲Spring Boot和Node.js構建開發基礎結構?
- 6. 基礎框架中的結構聲明
- 7. JsonArray和Array API中const修飾符的不同行爲
- 8. C++ 11繼承構造函數和訪問修飾符
- 9. C++構造函數,繼承,訪問修飾符和東西
- 10. OOP基礎 - C#重構?
- 11. C++順序修飾符
- 12. C#類/方法修飾符
- 13. 結構基礎知識(結構爲指針)
- 14. C# - 使用控件的類中的陣列基礎結構
- 15. 訪問修飾符C# - 內部修飾符
- 16. C++ 11 DirectX Math:XMVECTORF32作爲基礎結構初始化
- 17. 在C++中沒有修飾符的RegisterHotKey
- 18. 關於C#中的新修飾符
- 19. Golang基礎結構來定義子結構中的方法
- 20. 字符串連接和基於if修飾符的產生塊
- 21. 爲什麼「L」和「LL」修飾符做同樣的printf(C)
- 22. 如何用PHP中的dotall修飾符指定行的結尾?
- 23. 作爲Visual Studio中的代碼項目的Azure基礎結構
- 24. javascript中的類和訪問修飾符
- 25. 在Perl中使用/ c修飾符的奇數tr ///操作符行爲
- 26. Swing和最終修飾符
- 27. 在C++中是靜態修飾符嗎?
- 28. 請建議在C#和C++之間傳遞數據的基礎結構
- 29. QMouseMoveEvent和QKeyEvent修飾符的意外行爲
- 30. Gradle任務的行爲與Type修飾符的行爲不同
不知道我明白的問題??你想知道他們在做什麼,或者在定義的代碼庫中的哪個位置? –
Google?我認爲你可以很快找到這樣一個答案.... –
然後找到答案併發布:-) – Soeholm