回答
我覺得很方便,當你需要封裝數據的格式,主要是要在父類中使用使用嵌套類。這通常是因爲數據的目的或格式如此定製以至於不適合在您的解決方案中廣泛使用。
下面是對嵌套類的簡單介紹。
C#沒有辦法寫一個using
指令瞄準一類,使類的靜態成員可以不用寫的類名作爲資格進行訪問(使用Java的import static
比較,這確實允許)。
因此,對於您的類的用戶來說,如果您將任何公共類作爲名稱空間的直接成員,而不是嵌套在其他公共類中,則會更方便一些。這樣,他們可以用using
指令將它們拉入全局命名空間。
對於私人類,堅持下去,最好把它們放在它們用來增強代碼可讀性的地方。
我不確定在我的世界中是否有嵌套類的空間。它只是模糊了我的設計。如果你需要隱藏類中的信息,爲什麼不把它存儲在成員變量中?
此外,如果不能在課堂上注入存根,測試會變得更加繁瑣。
,因爲它並不總是你需要封裝的數據,否則結構就足夠了。如果你有一類汽車並且嵌套類是引擎,引擎需要具有諸如「Start()」之類的功能。 – 2011-03-23 09:43:55
@布萊恩,但你爲什麼不考慮引擎一個正常的獨立類(這也正好是一個汽車的財產)?我可能只是愚蠢的,但我從來沒有經歷過嵌套類的需要。我通常會把Engine作爲一個財產或者讓Car實現IEngine接口。我知道可能有些情況下信息隱藏是必不可少的,但我沒有經歷過這些情況:-) – Morten 2011-03-23 09:53:26
當然,引擎是內部的情況實際上取決於您的應用程序的範圍/上下文以及任何嵌套的實現上課可以說是個人偏好。 – 2011-03-23 10:05:21
嵌套類的用戶取決於下面的場景。
1)將代碼組織到兩個對象之間存在特殊關係的現實世界中。 2)在另一個類中隱藏一個類,這樣你就不希望內部類在它所創建的類的外部被使用。
假設你有2個班稱爲A和B類B取決於A類無A類,不能使用B類@那種情況下,你可以使用嵌套類
按我的知識
的DataRow類是數據表 嵌套類,即不能創建一個DataRow類,直到ü聲明DataTable類的對象
我發現兩個主要resons:
在不破壞它的情況下個性化一個班級的名字。
例如:Vercas.ExplorerView
,我在不破壞意義的情況下個性化我班的名字。私人課程。
示例:Vercas.ExplorerView.Item
僅在Vercas.ExplorerView
內部使用。
- 1. 什麼時候你想在C#中嵌套類?
- 2. 什麼時候在C#中使用類?
- 3. django:爲什麼我們在modelSerializer中使用嵌套的元類?
- 4. 我們應該什麼時候在C#中使用事件
- 5. 我們什麼時候在Objective-C中使用static __unsafe_unretained?
- 6. 什麼時候我們在Objective-C中使用「 - >」?
- 7. 什麼時候在嵌套類中調用構造函數(Java)
- 8. 在C#和C++中使用嵌套類 - 爲什麼和何時?
- 9. 什麼是SWC,什麼時候/我們在Flash中使用SWC
- 10. 什麼時候我們使用let rec?
- 11. Android:我們什麼時候使用getIntent()?
- 12. 我們什麼時候使用XMLSerialization?
- 13. 什麼時候應該使用嵌套類的示例?
- 14. 什麼時候應該使用嵌套類?
- 15. 什麼時候和爲什麼我會在C++中使用abs
- 16. 我們什麼時候知道我們應該使用符號?
- 17. 什麼時候在C++中使用「declare」?
- 18. 對象組合vs C++中的嵌套類我應該在什麼時候使用?
- 19. 爲什麼我們在方案中使用嵌套lambdas?
- 20. 什麼時候我們在css中使用media-queries「resolution」?
- 21. 我們什麼時候在iPhone SDK中使用@class
- 22. 我們什麼時候在角度中使用樣式和ngstyle?
- 23. 我們什麼時候在javascript中使用點符號?
- 24. 我們應該什麼時候在CodeIgniter中使用核心?
- 25. 什麼時候我們應該在css中使用rem單位?
- 26. 我們什麼時候需要在codeIgniter中使用base_url()函數?
- 27. 什麼是BigInteger,我們什麼時候可以使用它?
- 28. 什麼是C++中的「set」?他們什麼時候有用?
- 29. 什麼時候我們必須在C#中使用extern別名關鍵字?
- 30. 什麼時候我們必須在C#中使用checked運算符?
你有一個嵌套類的例子嗎?鏈接? – 2011-03-23 09:12:02