共用方式為


命名空間的名稱

更新:2007 年 11 月

為命名空間選擇的名稱應該指示型別在命名空間內所提供的功能。例如,System.Net.Sockets 命名空間包含可讓開發人員使用 Socket 透過網路通訊的型別。

命名空間名稱的一般格式如下:

<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]

例如 Microsoft.WindowsMobile.DirectX。

不要將組織階層架構當做命名空間階層架構內的名稱之基礎,因為公司內的群組名稱通常都存留較短。

此命名空間名稱是存留較久且不會變更的識別項;組織在發展過程中的變更不應該讓此命名空間名稱過時。

命名空間和型別名稱衝突

如果您選擇的命名空間或型別名稱有現有的名稱發生衝突,則程式庫使用者將必須限定受影響之項目的參考。但是,在大多數開發案例中,應該不是這種情形。

本章節所呈現的某些方針與下列命名空間的分類有關:

  • 應用程式模型命名空間

  • 基礎結構命名空間

  • 核心命名空間

  • 技術命名空間群組

應用程式模型中的命名空間會提供應用程式類別所特有的功能集合。例如,System.Windows.Forms 命名空間中的型別會提供編寫 Windows Form 用戶端應用程式所需的功能。System.Web 命名空間中的型別可支援 Web 架構伺服器應用程式的編寫。一般來說,不同應用程式模型的命名空間不會用於相同的應用程式中,所以名稱衝突不太可能會影響使用程式庫的開發人員。

基礎結構應用程式可提供特定的支援,而且很少會在程式碼中參考。例如 *.Designer 命名空間中的型別是由程式開發工具所使用;*.Permissions 命名空間則是基礎結構命名空間的另一個範例。基礎結構命名空間中型別的名稱衝突不太可能會影響使用程式庫的開發人員。

核心命名空間為 System.* 命名空間 (不包括應用程式和基礎結構命名空間);SystemSystem.Text 是核心命名空間的範例。您應該盡量去避免核心命名空間中型別的名稱衝突。

屬於某特定技術的命名空間將會有相同的第一層和第二層識別項 (Company.technology.*);您應該避免在技術中發生名稱衝突。

應用程式命名空間方針

不要在單一應用程式模型中為命名空間內的型別提供相同名稱。

例如,如果您編寫要由 Windows Form 應用程式開發人員所使用的特殊控制項之程式庫,您不應該引入名為 Checkbox 的型別,因為應用程式模型中已經有這個名稱的型別 (CheckBox)。

核心命名空間方針

不要提供會與核心命名空間內的任何型別發生衝突的型別名稱。

例如,請不要使用 Directory 做為型別名稱,因為這樣會與 Directory 型別發生衝突。

技術命名空間方針

請不要在技術命名空間和應用程式模型命名空間中引入會在型別之間發生衝突的型別名稱 (除非此技術不是要與此應用程式模型一起使用)。

Portions Copyright 2005 Microsoft Corporation.All rights reserved.

Portions Copyright Addison-Wesley Corporation.All rights reserved.

如需設計方針的詳細資訊,請參閱由 Krzysztof Cwalina 和 Brad Abrams 所著,並由 Addison-Wesley 於 2005 年發行的「Framework 設計方針:可重複使用之 .NET 程式庫的慣例、慣用語法和模式」一書。

請參閱

其他資源

開發類別庫的設計方針

命名方針