共用方式為


巢狀型別

巢狀型別是一種型別,它是某個其他型別的成員。 巢狀型別應該緊密地與其宣告型別結合,且不能與一般用途的型別一樣實用。 巢狀型別對於一些開發人員來說可能會覺得混淆,所以除非有強制性的理由,否則不應該讓巢狀型別公開可見。 在設計完善的程式庫中,開發人員應極少使用巢狀型別來將物件執行個體化或宣告變數。

當宣告的型別使用及建立巢狀型別的執行個體時,巢狀型別會很有用處,且不會在公用成員中公開此巢狀型別的使用。

當巢狀型別和其外部型別之間的關係會需要成員存取範圍語意時,一定要使用巢狀型別。

因為巢狀型別會視為宣告型別的成員,所以巢狀型別可以存取宣告型別中的所有其他成員。

請勿將公用巢狀型別當做邏輯群組建構使用,而是要使用命名空間。

避免使用公用的公開巢狀型別, 唯一的例外是當需要在罕見案例中宣告巢狀型別的變數時,例如,子類別化 (Subclassing) 或是其他進階自訂作業等案例。

如果此型別可能在宣告型別之外參考,請勿使用巢狀型別。

在一般情況下,應該不需要為巢狀型別進行變數宣告和物件執行個體化。 例如,處理某類別上定義的事件之事件處理常式委派不應該以巢狀方式置於此類別中。

如果需要以用戶端程式碼將巢狀型別執行個體化,請勿使用這些巢狀型別。 如果型別具有公用建構函式,則可能不應巢狀化。

在理想狀況下,巢狀型別只由它的宣告型別來執行個體化及使用。 如果巢狀型別有公用建構函式,這表示此型別的某些使用與它的宣告型別不同。 一般來說,巢狀型別不應該針對非其宣告型別以外的型別執行工作。 如果型別具有更廣的用途,則很可能不應巢狀化。

請勿將巢狀型別定義為介面的成員, 許多語言不支援這類的建構。

Portions Copyright 2005 Microsoft Corporation. All rights reserved.

Portions Copyright Addison-Wesley Corporation. All rights reserved.

設計指引的詳細資訊,請參閱"框架設計準則:公約、 成語和可重複使用的模式。網路圖書館"書 Krzysztof Cwalina 和布拉德 · 艾布拉姆斯,2005年艾迪生 - 衛斯理,發表。

請參閱

概念

型別和命名空間

其他資源

型別設計方針

開發類別庫的設計方針