c#程式中,每提及乙個「名稱」,編譯器就要對這個「名稱」進行「決議(resolve)」;簡言之,就是要讓
這個「名稱」可見(visible);
舉例說明一下:
console.writeline("hello ,edgarsun!");
此時編譯器將無法對console這一名稱進行「決議」;using指令提供了一種解決方法,如using system;
便是告訴編譯器到system命名空間中查詢無法決議的「名稱」;另一種做法是明確(全飾名稱full qualified
name)告訴編譯器到何處尋找這個「名稱」,system.console.writeline("hello,edgarsun!");
舉乙個簡單的命名空間的例子:
namespace n1
//n1.a }
namespace n2
//n2.a }
類a定義於各自的命名空間(namespace),現在類a對整個程式來說不再是可見的了。而如若我們在程式
中同時「開啟」(**expose)兩個命名空間,那麼unqulified name a將會導致編譯錯誤。此時必須使用
「全飾名稱」,如n2.a a;
另外,n1和n2可以相同,編譯器認為我們想在原先存在的命名空間中加入新宣告(declare);
還有一種方法是使用別名(alias);
namespace n3 }
再補充一點,別名(alias)僅在當前的命名空間中有效。
《C Primer》讀書筆記 命名空間
我們在寫程式時會用到各種類和函式,這些名字難免會有衝突,尤其是大型專案,更避免不了重名的問題。所以,當有重名的時候,就引入了命名空間的概念。由於這種機制對於宣告於其中的名稱都進行了本地化,就使得相同的名稱可以在不同的上下文中使用,而不會引起名稱的衝突。命名空間就是乙個作用域,我們在使用這個作用域中的...
讀書筆記 之五
筆者的話 接觸硬體較少,很多術語都是字面翻譯,讀者請見諒.我盡量帶上英文原詞,避免歧義.2.2 磁碟驅動器元件 磁碟驅動器使用快速移動的臂來在大唱片一樣的覆蓋著小磁粒的碟片上讀寫資料的.資料從磁碟片上通過r w頭傳輸到計算機中.多個碟片,讀寫頭和控制器被組合在一起,通常這被稱為是硬碟驅動器 hard...
讀書筆記之TCP UDP
網際網路,更一般的是tcp ip網路為應用程式提供兩個運輸層協議,即udp和tcp。當乙個軟體開發者為英特網建立乙個新的應用時,首先要做出的決定就是,選擇使用tcp協議還是udp協議。每個協議為呼叫他們的應用程式提供了不同的服務集合。tcp服務模型包括面向連線服務和可靠資料傳輸服務。當某個應用程式呼...