命名空間提供邏輯上組織相關類型的方式,避免名稱衝突。它不是實體檔案或組件,單純是編譯時期的邏輯結構。
namespace CustomerPhoneBookApp
{
public struct Subscriber { ... }
}
// 巢狀命名空間
namespace Wrox.ProCSharp.Basics
{
class NamespaceExample { ... }
}
// 等同於
namespace Wrox { namespace ProCSharp { namespace Basics { ... } } }
完整型別名稱包含命名空間:Wrox.ProCSharp.Basics.NamespaceExample。
using System;
using Wrox.ProCSharp;
// 此處可直接使用 NamespaceExample
var obj = new NamespaceExample();
using 僅提供編譯時期的別名便利,不建立實體連結(不同於 C++ #include)。using System;。using Introduction = Wrox.ProCSharp.Basics;
var ex = new Introduction.NamespaceExample();
Console.WriteLine(ex.GetNamespace()); // 輸出 Wrox.ProCSharp.Basics
適用於:命名空間過長、或兩個命名空間包含同名類型時。
CompanyName.ProductName.Module),避免內外部型別衝突。