99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

C# 應(yīng)用程序啟動

2018-09-28 18:41 更新

應(yīng)用程序啟動

擁有進入點(entry point)的程序集稱應(yīng)用程序(application)。當運行一應(yīng)用程序時,將創(chuàng)建一新應(yīng)用程序域(application domain)。同一個應(yīng)用程序可在同一臺機器(machine)上同時運行多個實例,并且每個實例都有自己的應(yīng)用程序域。

應(yīng)用程序域作為應(yīng)用程序狀態(tài)(application state)之容器(container),使應(yīng)用程序相互隔離(isolation)。應(yīng)用程序域是定義于應(yīng)用及所用類庫的類型之容器與邊界。加載入不同的應(yīng)用程序域的同一類型是相互涇渭分明的,而其實例化的對象也不會在應(yīng)用程序域之間直接共享。比方說,對于這些類型的靜態(tài)變量,每個應(yīng)用程序域都自有一份其副本,同時這些類型的靜態(tài)構(gòu)造函數(shù)在應(yīng)用程序域中至多運行一次。實現(xiàn)可以自由為應(yīng)用程序域的創(chuàng)建和銷毀提供指定實現(xiàn)(implementation-specific)策略或機制。

應(yīng)用程序啟動(Application startup)時,執(zhí)行環(huán)境會調(diào)用一個特指的方法作為應(yīng)用程序的進入點(entry point)。入口點方法一貫稱為 Main,且可為下列簽名中的一種:

  • static void Main() {...}
  • static void Main(string[] args) {...}
  • static int Main() {...}
  • static int Main(string[] args) {...}

如上所示,進入點可以選擇 int 為其返回值。這個返回值通常被用在應(yīng)用程序終止(application termination,第三章第二節(jié))時。

進入點有個可選形參。這個參數(shù)可以用任何名稱,但它的類型必須是 string[]。如果出現(xiàn)形參,那么當應(yīng)用程序啟動時,執(zhí)行環(huán)境將通過命令行參數(shù)(command-line arguments)的方式創(chuàng)建并傳遞指定的 string[]實參。實參 string[]永不為空(null),但它可能長度為零(如果命令行沒有指定實參的話)。

由于 C# 支持方法重構(gòu)(overload),類或結(jié)構(gòu)可以包含一個方法的多個定義,前提是每個重載版本都有不同的方法簽名。然而,在一個程序內(nèi),類或結(jié)構(gòu)內(nèi)不能同時存在多個叫做 Main 的方法,因為 Main 被限定為只能作為應(yīng)用程序的入口點。如果提供超過一個參數(shù)或者唯一參數(shù)類型不是 string[],則允許重載多個 Main 版本。

應(yīng)用程序可由多個類與結(jié)構(gòu)組成,也許會有多個 Main 方法在這些類或結(jié)構(gòu)內(nèi),由于 Main 的定義限定它只能是應(yīng)用程序入口點,所以在這種情況下,外部機制(諸如命令行編譯器選項)必須從中選擇其一作為應(yīng)用程序的進入點。

在 C# 中每一個方法都必須定義為類或結(jié)構(gòu)的成員,一般情況下方法的聲明可訪問性(declared accessibility,第三章第 5.1 節(jié))是由訪問控制修飾符(access modifiers,第十章第 3.5 節(jié))所決定的;同樣,類型的聲明聲明可訪問性也是由其訪問控制修飾符所決定的。為了調(diào)用所給定類型的給定方法,類型與成員都必須可被訪問(accessible),然應(yīng)用程序進入點是特例。不管應(yīng)用程序進入點的聲明可訪問性及其閉包類型的聲明可訪問性,執(zhí)行環(huán)境總能訪問到它們。

應(yīng)用程序進入點方法(entry point method)不能放入泛型類聲明內(nèi)。

在其它各方面,進入點方法與非進入點方法的行為類似。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號