global
我們平常在寫 System.Console.WriteLine()
,很正常沒問題。
但如果有一支程式長這樣
雖然我有using System;
,但是同一個類別下,已經有被宣告同樣命名為 System 和 Console 的東西,所以本來 using System;
的成員就會被隱藏。
即使使用 System.Console.WriteLine(number);
也會因為已經有 System,而被隱藏,導致錯誤。
這時可以用 global
來暫時解決這個錯誤。
global::System.Console.WriteLine(number);
當左邊的識別項是 global 的時候,搜尋正確的識別項會從全域命名空間開始。
用以下例子舉例
假設我們正在開發A專案,這個專案中已經有一個叫做TestApp
的命名空間。此時我們想要用B專案的TestApp
來繼承、改寫。這時我們就要先using
B專案的TestApp
,再用上述方法來繼承。
只要使用global::
,就會使用上方using
的命名空間。
範例
colAlias::Hashtable
會直接去上方的命名空間去找來用。 global::System.Console.WriteLine
會直接去全域命名空間找來用。
若有相同名稱
.
會先找近的,遠的會被隱藏。 ::
會去找命名空間的(別名)。可以使用別名。 global::
會去找全域命名空間的。不可以使用別名。
Last updated