更新:2007 年 11 月
命名空間 (Namespace) 是組織 C# 程式中各種型別的方法。它在概念上和電腦檔案系統中的資料夾類似。和資料夾一樣,命名空間讓類別 (Class) 具有唯一完整的名稱。C# 程式包含一個或多個命名空間,並且每個命名空間是由程式設計人員所定義,或是定義為先前撰寫類別庫的一部分。
例如,命名空間 System 包含 Console 類別,這個類別包含讀取和寫入主控台視窗的方法。System 命名空間也包含幾種其他命名空間,例如 System.IO 和 System.Collections。.NET Framework 有八十個以上的命名空間,每個命名空間有上千種類別;命名空間是用來減少類似命名型別和方法之間造成的混淆。
如果您在命名空間宣告外撰寫類別,編譯器會為該類別提供預設的命名空間。
命名空間捷徑
若要在 System 命名空間包含的 Console 類別中使用 WriteLine 方法,您可以使用如下所示的程式碼行:
System.Console.WriteLine("Hello, World!");
要記得在 Console 包含的所有方法之前放置 System,很快便會成為一件累人的事;因此有用的捷徑可將 using Directive 關鍵字插入 C# 原始程式檔的開頭,如下所示:
using System;
包含 using System; 會建立使用 System 命名空間的假設,接著您可以撰寫以下程式碼:
Console.WriteLine("Hello, World!");
建立自己的命名空間
當處理大型程式時通常會使用命名空間。使用自己的命名空間,可以在類似命名方法和型別上提供一定程度的控制。例如,假設您正在撰寫從磁碟同時載入統計資料和影像檔案的應用程式。您可以建立兩個新的命名空間,一個稱為 Images,另一個稱為 StatisticalData。因為您使用兩個不同的命名空間,所以即使個別類別的名稱相同,定義在每個命名空間中的所有方法名稱都是唯一的。這表示在兩個命名空間中都可以有稱為 FileHandling 的類別,並且兩個類別都包含稱為 Load 的方法。您可以參考 StatisticalData.FileHandling 或 Images.FileHandling 指定想要的類別。
為 Visual C# Express 專案中的每個命名空間建立個別的資料夾是一項很好的措施。
範例
下列範例定義兩個命名空間,每個都包含名為 FileHandling 的類別。您可以藉由指定命名空間快速區分其中包含的類別和方法。
namespace StatisticalData
{
class FileHandling
{
public void Load() {} // code to load statistical data
}
}
namespace Images
{
class FileHandling
{
public void Load() {} // code to load an image file
}
}
class Program
{
static void Main()
{
StatisticalData.FileHandling data = new StatisticalData.FileHandling();
data.Load();
Images.FileHandling image = new Images.FileHandling();
image.Load();
}
}