命名空間的設計目的是提供一種讓一組名稱與其他名稱分隔開的方式。
一、定義命名空間
關鍵字 namespace 開始,後跟命名空間的名稱。
聲明方法:
namespace namespace_name
{
// 代碼聲明
}
跨命名空間調用方式:
namespace_name.item_name;
例:
using System;
namespace first_space
{
class namespace_cl
{
public void func()
{
Console.WriteLine("Inside first_space");
}
}
}
namespace second_space
{
class namespace_cl // 與第一個命名空間的類名相同
{
public void func()
{
Console.WriteLine("Inside second_space");
}
}
}
class TestClass
{
static void Main(string[] args)
{
first_space.namespace_cl fc = new first_space.namespace_cl(); // 第一個空間下的類進行實例化
second_space.namespace_cl sc = new second_space.namespace_cl(); // 第二個空間下的類進行實例化
fc.func(); //調用類的函數
sc.func(); //調用類的函數
Console.ReadKey();
}
}
運行結果:
Inside first_space
Inside second_space
二、using 關鍵字
using 關鍵字表明程序使用的是給定命名空間中的名稱。
例如,我們在程序中使用 System 命名空間,其中定義了類 Console。
所以 using System 之後,可以只寫:
Console.WriteLine ("Hello there");
否則需要寫完整:
System.Console.WriteLine("Hello there");
例:
using System;
using first_space;
using second_space;
namespace first_space
{
class abc
{
public void func()
{
Console.WriteLine("Inside first_space");
}
}
}
namespace second_space
{
class efg
{
public void func()
{
Console.WriteLine("Inside second_space");
}
}
}
class TestClass
{
static void Main(string[] args)
{
abc fc = new abc();
efg sc = new efg();
fc.func();
sc.func();
Console.ReadKey();
}
}
運行結果:
Inside first_space
Inside second_space
三、嵌套命名空間
聲明方式:
namespace namespace_name1
{
// 代碼聲明
namespace namespace_name2
{
// 代碼聲明
}
}
使用 點 運算符,訪問嵌套的命名空間成員。
例:
using System;
using SomeNameSpace;
using SomeNameSpace.Nested;
namespace SomeNameSpace
{
public class MyClass
{
static void Main()
{
Console.WriteLine("In SomeNameSpace");
Nested.NestedNameSpaceClass.SayHello(); // 訪問 Nested 命名空間中的類 的 方法
}
}
// 內嵌命名空間
namespace Nested
{
public class NestedNameSpaceClass
{
public static void SayHello()
{
Console.WriteLine("In Nested");
}
}
}
}
運行結果:
In SomeNameSpace
In Nested