瞭解下C# 名稱空間(Namespace)
導讀 | 名稱空間的設計目的是提供一種讓一組名稱與其他名稱分隔開的方式。在一個名稱空間中宣告的類的名稱與另一個名稱空間中宣告的相同的類的名稱不衝突。 |
我們舉一個計算機系統中的例子,一個資料夾(目錄)中可以包含多個資料夾,每個資料夾中不能有相同的檔名,但不同資料夾中的檔案可以重名。
定義名稱空間
名稱空間的定義是以關鍵字 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。我們可以只寫:
Console.WriteLine ("Hello there");
我們可以寫完全限定名稱,如下:
System.Console.WriteLine("Hello there");
您也可以使用 using 名稱空間指令,這樣在使用的時候就不用在前面加上名稱空間名稱。該指令告訴編譯器隨後的程式碼使用了指定名稱空間中的名稱。下面的程式碼演示了名稱空間的應用。
讓我們使用 using 指定重寫上面的例項:
例項
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(); } } // 內嵌名稱空間 namespace Nested { public class NestedNameSpaceClass { public static void SayHello() { Console.WriteLine("In Nested"); } } } }
當上面的程式碼被編譯和執行時,它會產生下列結果:
In SomeNameSpace In Nested
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2888432/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 『無為則無心』Python函式 — 31、名稱空間(namespace)Python函式namespace
- 名稱空間
- 瞭解下C# 可空型別(Nullable)C#型別Null
- PHP名稱空間PHP
- PHP 名稱空間PHP
- 20200109 - 名稱空間
- python名稱空間Python
- vuex名稱空間Vue
- 15-名稱空間
- Python名稱空間包Python
- 11. 名稱空間
- ts---名稱空間
- C++名稱空間C++
- C#學習 [型別系統] 名稱空間(12)C#型別
- 使用p名稱空間和c名稱空間的XML快捷方式XML
- Python中名稱空間是什麼?名稱空間生命週期是多久?Python
- ros節點名稱空間ROS
- PHP 核心特性 - 名稱空間PHP
- Kubernetes 名稱空間入門
- 3-1 名稱空間
- 什麼是名稱空間?
- 當有名稱空間namespace時,function_exists的傳參namespaceFunction
- .NET C#基礎(6):名稱空間 - 有名字的作用域C#
- Python作用域和名稱空間Python
- spring框架中的名稱空間Spring框架
- System.Security.Cryptography 名稱空間
- c++系列:匿名名稱空間C++
- 瞭解下C# 迴圈C#
- 瞭解下C# 判斷C#
- 瞭解下C# 繼承C#繼承
- 瞭解下C# 類(Class)C#
- 瞭解下C# 變數C#變數
- 瞭解下C# 字串(String)C#字串
- 瞭解下C# 運算子C#
- 瞭解下C# 事件(Event)C#事件
- 瞭解下C# 介面(Interface)C#
- .NET C#基礎(6):名稱空間 - 組織程式碼的利器C#
- 內聯和巢狀名稱空間巢狀