C# 命名空間(Namespace)相關(guān)知識(shí)總結(jié)
命名空間的設(shè)計(jì)目的是提供一種讓一組名稱與其他名稱分隔開的方式。在一個(gè)命名空間中聲明的類的名稱與另一個(gè)命名空間中聲明的相同的類的名稱不沖突。
我們舉一個(gè)計(jì)算機(jī)系統(tǒng)中的例子,一個(gè)文件夾(目錄)中可以包含多個(gè)文件夾,每個(gè)文件夾中不能有相同的文件名,但不同文件夾中的文件可以重名。
定義命名空間
命名空間的定義是以關(guān)鍵字 namespace 開始,后跟命名空間的名稱,如下所示:
namespace namespace_name { // 代碼聲明 }
為了調(diào)用支持命名空間版本的函數(shù)或變量,會(huì)把命名空間的名稱置于前面,如下所示:
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(); } }
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
Inside first_space
Inside second_space
using 關(guān)鍵字
using 關(guān)鍵字表明程序使用的是給定命名空間中的名稱。例如,我們?cè)诔绦蛑惺褂?System 命名空間,其中定義了類 Console。我們可以只寫:
Console.WriteLine ("Hello there");
我們可以寫完全限定名稱,如下:
System.Console.WriteLine("Hello there");
您也可以使用 using 命名空間指令,這樣在使用的時(shí)候就不用在前面加上命名空間名稱。該指令告訴編譯器隨后的代碼使用了指定命名空間中的名稱。下面的代碼演示了命名空間的應(yīng)用。
讓我們使用 using 指定重寫上面的實(shí)例:
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(); } }
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
Inside first_space
Inside second_space
嵌套命名空間
命名空間可以被嵌套,即您可以在一個(gè)命名空間內(nèi)定義另一個(gè)命名空間,如下所示:
namespace namespace_name1 { // 代碼聲明 namespace namespace_name2 { // 代碼聲明 } }
您可以使用點(diǎn)(.)運(yùn)算符訪問(wèn)嵌套的命名空間的成員,如下所示:
using System; using SomeNameSpace; using SomeNameSpace.Nested; namespace SomeNameSpace { public class MyClass { static void Main() { Console.WriteLine("In SomeNameSpace"); Nested.NestedNameSpaceClass.SayHello(); } } // 內(nèi)嵌命名空間 namespace Nested { public class NestedNameSpaceClass { public static void SayHello() { Console.WriteLine("In Nested"); } } } }
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
In SomeNameSpace
In Nested
以上就是C# 命名空間(Namespace)相關(guān)知識(shí)總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于C# 命名空間(Namespace)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用C#9中records作為強(qiáng)類型ID的實(shí)例教程
這篇文章主要給大家介紹了關(guān)于使用C#9中records作為強(qiáng)類型ID的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01C#中的ICustomFormatter及IFormatProvider接口用法揭秘
這篇文章主要介紹了C#中的ICustomFormatter及IFormatProvider接口用法揭秘,本文能過(guò)分析一段代碼得出一些研究結(jié)果,需要的朋友可以參考下2015-06-06C#創(chuàng)建Windows服務(wù)與服務(wù)的安裝、卸載
這篇文章介紹了C#創(chuàng)建Windows服務(wù)與服務(wù)的安裝、卸載,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02Unity?UGUI的VerticalLayoutGroup垂直布局組件介紹使用
這篇文章主要為大家介紹了Unity?UGUI的VerticalLayoutGroup垂直布局組件介紹使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07C# DataTable數(shù)據(jù)遍歷優(yōu)化詳解
這篇文章主要介紹了C# DataTable數(shù)據(jù)遍歷優(yōu)化詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01C# 中的 IReadOnlyDictionary 和 IReadOnlyLis
C# 中的IReadOnlyDictionary和IReadOnlyList是接口,用于表示只讀的字典和只讀的列表,這些接口提供了對(duì)集合的只讀訪問(wèn)權(quán)限,即不允許對(duì)集合進(jìn)行修改操作,這篇文章主要介紹了C# 中的 IReadOnlyDictionary 和 IReadOnlyList實(shí)例詳解,需要的朋友可以參考下2024-03-03在C#中優(yōu)化JPEG壓縮級(jí)別和文件大小方式
文章介紹了如何在C#中優(yōu)化JPEG壓縮級(jí)別和文件大小,通過(guò)使用文件菜單加載圖像文件并選擇不同的壓縮級(jí)別,程序?qū)D像保存為臨時(shí)文件并顯示生成的圖像和文件大小,關(guān)鍵方法SaveJpg使用給定的壓縮指數(shù)保存JPG文件,并通過(guò)GetEncoderInfo獲取編碼器信息2025-01-01