C# 表達式 名稱空間
在繼續(xù)學習前,應花一定的時間了解一個比較重要的主題——名稱空間。它們是_NET中提供應用程序代碼 容器的方式,這樣就可以唯一地標識代碼及其內(nèi)容。名稱空間也用作.NETFramework中給項分類的一種方式。 大多數(shù)項都是類型定義。
默認情況下,碼包含在全局名稱空間中。這意味著對于包含在這段代碼中的項,全局名稱空間中的其 他代碼只要通過名稱進行引用,就可以訪問它們??墒褂胣amespace關鍵字為花括號中的代碼塊顯式定義名稱 空間。如果在該名稱空間代碼的外部使用名稱空間中的名稱,就必須寫出該名稱空間中的限定名稱。
限定名稱包括它所有的分層信息。這意味著,如果一個名稱空間中的代碼需要使用在另—個名稱空間中定 義的名稱,就必須包括對該名稱空間的引用。限定名稱在不同的名稱空間級別之間使用句點字符(_),如下所示:
namespace LevelOne
{
// code in LevelOne namespace // name "NameOne*1 defined
}
IIcode in global namespace
這段代碼定義了一個名稱空間LevelOne,以及該名稱空間中的一個名稱NameOne(注意這里在應該定義名 稱空間的地方添加了一個注釋,而沒有列出實際代碼,這是為了使我們的討論更具普遍性)。在名稱空間LevelOne 中編寫的代碼可以直接使用NameOne來引用該名稱,但全局名稱空間中的代碼必須使用限定名稱 LevelOne.NameOne來引用這個名稱。
需要注意特別重要的一點:using語句本身不能訪問另一個名稱空間中的名稱。除非名稱空間中的代碼以某 種方式鏈接到項目上,或者代碼是在該項目的源文件中定義的,或者是在鏈接到該項目的其他代碼中定義的, 否則就不能訪問其中包含的名稱。另外,如果包含名稱空間的代碼鏈接到項目上,那么無論是否使用using,都 可以訪問其中包含的名稱。using語句便于我們訪問這些名稱,減少代碼量,以及提高可讀性。
分析ConsoleApplicationl中的代碼,會看到下面這些被應用到名稱空間上的代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplicationl
以using關鍵字開頭的5行代碼聲明在這段C#代碼中使用System、System.Collections.Generic> System.Linq、 System.Text和System.Threading.Tasks名稱空間,它們可以在該文件的所有名稱空間中訪問,不必進行限定。System 名稱空間是.NETFrameworic應用程序的根名稱空間,包含控制臺應用程序需要的所有基本功能。其他4個名稱 空間常用于控制臺應用程序,所以該程序包含了它們。最后,為應用程序代碼本身聲明一個名稱空間
ConsoleApplicationl。
C# 6新増了 using static關鍵字。這個關鍵字允許把靜態(tài)成員直接包含到C#程序的作用域中。例如,本章 的兩個示例都使用了 System.Console靜態(tài)類中的System.Console.WriteLineO方法。注意,在這些例子中,應包 括Console類和WriteLineO方法。把using static System.Console添加到名稱空間列表中時,訪問WriteLineO方法 就不再需要在前面加上靜態(tài)類名。
之后需要System .Console靜態(tài)類的所有代碼示例就包括using static System.Console關鍵字。
點擊加載更多評論>>