|
|
|
|
|
在 C# 中,命名空間用于在邏輯上安排類、結構、接口、枚舉和委托。C# 中的命名空間可以嵌套,這意味著一個命名空間也可以包含其他命名空間。.NET 框架已經(jīng)包含許多標準命名空間,如 System、System.Net、System.IO 等。除了這些標準命名空間之外,用戶還可以定義自己的命名空間。
聲明命名空間
C#語言提供了關鍵字命名空間來創(chuàng)建用戶自定義的命名空間,聲明命名空間的一般形式如下。
namespace <namespace_name>
{
//類、結構、枚舉等
}
其中 namespace 是必需的關鍵字,命名空間的名稱可以是任何有效的 C# 標識符或以逗號分隔的標識符組合。
例如:
using System;
namespace Rajesh.Csharp.Codes
{
class MyClass
{
public MyClass()
{
Console.WriteLine("My Class");
}
}
class MyClient
{
public static void Main()
{
MyClass mc = new MyClass();// 顯示 'My Class'
}
}
}
聲明命名空間不能犯的錯誤
首先,命名空間的名稱可以是任何有效的 C# 標識符或以逗號分隔的標識符組合,除此之外還要符合一些特定要求。
以下代碼無法在 C# 中編譯,因為命名空間內(nèi)的類被聲明為私有(private)的。
namespace Rajesh.Csharp.Codes
{
private class MyClass
{
}
}
三種方法訪問命名空間成員
可以使用完全限定名稱訪問命名空間成員,其中包括命名空間名稱和來自命名空間外部的以點(.
)分隔的成員名稱。
例如
using System;
namespace Rajesh.Csharp.Codes
{
class MyClass
{
public MyClass()
{
Console.WriteLine("My Class");
}
}
}
class MyClient
{
public static void Main()
{
//使用完全限定名稱訪問命名空間成員
Rajesh.Csharp.Codes.MyClass mc = new Rajesh.Csharp.Codes.MyClass();
}
}
但為了避免開發(fā)人員每次都輸入完全限定名稱,C# 提供了另一個關鍵字,用于為命名空間定義一些別名。然后在編寫我們的代碼時,我們只用它們的類名來引用類。在編譯期間,編譯器將映射所有帶有別名的類名以達到類的完全限定名。找到完全限定名稱后,它用于將代碼轉(zhuǎn)換為 IL 代碼。請記住,在 IL 代碼中,所有類、接口、枚舉和委托都使用它們的完全限定名稱進行引用。
使用示例如下所示。
using Rajesh.Csharp.Codes;
MyClass mc = new MyClass();
請記住,在 C# 命名空間內(nèi),可以使用關鍵字 using。
namespace MyNameSpace
{
using System;
class MyClass
{
}
}
命名空間 MyNameSpace 中包含的任何代碼都可以訪問 System 命名空間而無需完全限定類型名稱,但這些類型不是 MyNameSpace 命名空間的成員。
同一個命名空間可以跨越多行,如下所示。
using System;
namespace Rajesh.Csharp.Codes
{
class MyClass
{
public MyClass()
{
Console.WriteLine("My Class");
}
}
}
namespace Rajesh.Csharp.Codes
{
class MyClient
{
public static void Main()
{
MyClass mc = new MyClass();
}
}
}
在關鍵字 using 的幫助下,可以為命名空間或類型創(chuàng)建別名。
例如
using con = System.Console; // 創(chuàng)建別名
class MyClient
{
public static void Main()
{
con.WriteLine("Hey rajesh! how you");
}
}
嵌套命名空間
在 C# 中,命名空間可以相互嵌套,如下所示。
using System;
namespace Outer
{
namespace Inner
{
class MyClass
{
public MyClass()
{
Console.WriteLine("My Class");
}
}
}
}
class MyClient
{
public static void Main()
{
Outer.Inner.MyClass mc = new Outer.Inner.MyClass();
}
}
.NET 中的標準命名空間
以下是 .NET Framework 中的一些標準命名空間。
這些是 .NET 框架的一些重要命名空間。請記住,上面的列表并不完整。
總結
本文介紹了在C#中如何聲明和訪問命名空間,以及一些要注意的問題。
相關文章