瞭解下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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- php名稱空間namespace使用筆記PHPnamespace筆記
- PHP名稱空間(Namespace)的使用詳解PHPnamespace
- c# MySqlConnection的名稱空間C#MySql
- 名稱空間
- C#名稱空間、型別的別名管理C#型別
- JAXB名稱空間及名稱空間字首處理
- 『無為則無心』Python函式 — 31、名稱空間(namespace)Python函式namespace
- c#之.NET Framework 類庫_名稱空間C#Framework
- PHP 名稱空間PHP
- PHP名稱空間PHP
- vuex名稱空間Vue
- jQuery 名稱空間jQuery
- JavaScript 名稱空間JavaScript
- 瞭解下C# 可空型別(Nullable)C#型別Null
- c# 名稱空間_system.runtime.remotingC#REM
- python名稱空間Python
- C++名稱空間C++
- 更改模型名稱空間模型
- 全域性名稱空間
- C++ 名稱空間C++
- Python 名稱空間Python
- 11. 名稱空間
- ts---名稱空間
- 使用p名稱空間和c名稱空間的XML快捷方式XML
- c#之system.data.componentmodel名稱空間C#
- C#學習 [型別系統] 名稱空間(12)C#型別
- PHP 核心特性 - 名稱空間PHP
- Spring名稱空間解析Spring
- 使用名稱空間:基礎
- ros節點名稱空間ROS
- JavaScript 中的名稱空間JavaScript
- PHP名稱空間概念解析PHP
- JAXB玩轉名稱空間
- Python 的名稱空間Python
- System.Web 名稱空間Web
- Python名稱空間包Python
- C#解決一個奇怪的,名稱空間“XXX”中不存在型別或名稱空間名稱“xxx”的問題C#型別
- Python中名稱空間是什麼?名稱空間生命週期是多久?Python