在C#中g(shù)lobal關(guān)鍵字的作用及其用法
global 是 C# 2.0 中新增的關(guān)鍵字,理論上說(shuō),如果代碼寫(xiě)得好的話(huà),根本不需要用到它。
假設(shè)你現(xiàn)在寫(xiě)了一個(gè)類(lèi),名字叫 System。那么當(dāng)你再在代碼里寫(xiě) System 的時(shí)候,編譯器就不知道你是要指你寫(xiě)的 System 類(lèi)還是系統(tǒng)的 System 命名空間,而 System 命名空間已經(jīng)是根命名空間了,無(wú)法再通過(guò)完全限名來(lái)指定。在以前的 C# 版本中,這就是一個(gè)無(wú)法解決的問(wèn)題?,F(xiàn)在,可以通過(guò)global::System來(lái)表示 System 根命名空間,而用你自己的MyNamespace.System來(lái)表示自己的類(lèi)。
當(dāng)然,這種情況不應(yīng)該出現(xiàn),你不應(yīng)該寫(xiě)一個(gè)名為 System 的類(lèi)。
代碼演示:
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace globalFunc
{
class Program
{
static void Main(string[] args)
{
System sys = new System();
global::System.Console.WriteLine("global.");
global::System.Console.ReadKey();
}
}
public class System { }
}
雖然using了一個(gè)System命名空間,但是下面還有一個(gè)public class System{ ... }類(lèi),這樣的話(huà),如果直接使用System.Console.WriteLine是會(huì)報(bào)錯(cuò)的,因?yàn)闀?huì)找到就近的System類(lèi),那么這個(gè)System類(lèi)里面沒(méi)有Console。所以如果需要使用的話(huà),就需要像上面一樣,使用global::System.Console.WriteLine,因?yàn)槭褂胓lobal標(biāo)記的類(lèi)會(huì)從全局開(kāi)始尋找,我的理解就是會(huì)從最外面逐漸向內(nèi)部尋找System類(lèi)。
- C# 的關(guān)鍵字詳細(xì)介紹
- c#多線程中Lock()關(guān)鍵字的用法小結(jié)
- C#基礎(chǔ)知識(shí)系列八const和readonly關(guān)鍵字詳細(xì)介紹
- 深入探討C#中的const、readonly關(guān)鍵字
- C#中var關(guān)鍵字用法分析
- C#使用this關(guān)鍵字實(shí)現(xiàn)串聯(lián)構(gòu)造函數(shù)調(diào)用方法
- C# yield關(guān)鍵字詳解
- C#中Override關(guān)鍵字和New關(guān)鍵字的用法詳解
- C# partial關(guān)鍵字說(shuō)明
- C#中AS和IS關(guān)鍵字的用法
- 常用C#關(guān)鍵字詳解教程(比較全面)
相關(guān)文章
為IObservable實(shí)現(xiàn)自己的運(yùn)算符(詳解)
下面小編就為大家?guī)?lái)一篇為IObservable實(shí)現(xiàn)自己的運(yùn)算符(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05Unity 實(shí)現(xiàn)鼠標(biāo)滑過(guò)UI時(shí)觸發(fā)動(dòng)畫(huà)的操作
這篇文章主要介紹了Unity 實(shí)現(xiàn)鼠標(biāo)滑過(guò)UI時(shí)觸發(fā)動(dòng)畫(huà)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04C# http系列之以form-data方式上傳多個(gè)文件及鍵值對(duì)集合到遠(yuǎn)程服務(wù)器
這篇文章主要介紹了C# http系列之以form-data方式上傳多個(gè)文件及鍵值對(duì)集合到遠(yuǎn)程服務(wù)器,需要的朋友可以參考下2019-08-08C#設(shè)置開(kāi)機(jī)啟動(dòng)項(xiàng)、取消開(kāi)機(jī)啟動(dòng)項(xiàng)
這篇文章主要介紹了C#設(shè)置開(kāi)機(jī)啟動(dòng)項(xiàng)、取消開(kāi)機(jī)啟動(dòng)項(xiàng),本文通過(guò)修改注冊(cè)實(shí)現(xiàn),并給出操作代碼,需要的朋友可以參考下2015-06-06C#實(shí)現(xiàn)3步手動(dòng)建DataGridView的方法
這篇文章主要介紹了C#實(shí)現(xiàn)3步手動(dòng)建DataGridView的方法,實(shí)例分析了C#實(shí)現(xiàn)手動(dòng)創(chuàng)建DataGridView的原理與技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09Unity的Console的控制類(lèi)LogEntries深入解析與實(shí)用案例
這篇文章主要為大家介紹了Unity的Console的控制類(lèi)LogEntries深入解析與實(shí)用案例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07C#使用Clipboard類(lèi)實(shí)現(xiàn)剪貼板功能
這篇文章介紹了C#使用Clipboard類(lèi)實(shí)現(xiàn)剪貼板功能的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06