應(yīng)用程序以 Main 方法為入口點(diǎn),如果為 Main 方法指定一個(gè) string[] 類型的參數(shù),在程序運(yùn)行時(shí),這個(gè)參數(shù)會(huì)獲取到傳遞給應(yīng)用程序的命令行參數(shù)。

而 WPF 應(yīng)用程序比較特殊,因?yàn)樵赩S中包含一些生成的的代碼,因此,Main 方法所在的代碼文件被隱藏了(文件名為App.g.cs,g 表示生成的意思),雖然在項(xiàng)目的obj目錄下能找到這個(gè)文件,但是直接在生成的文件中編寫代碼是沒有意義的,下次生成時(shí)就會(huì)覆蓋掉。

因此,在WPF應(yīng)用程序中,應(yīng)該將App類視為入口點(diǎn),可以在App類中處理一些程序初始化的事情。

 

其實(shí),在.net 框架中,Environment 類有個(gè)靜態(tài)的 GetCommandLineArgs 方法,它的好處是可以在程序的任意代碼處獲取傳遞給程序的命令行參數(shù)。所以,在WPF應(yīng)用程序中,你依然可以調(diào)用 GetCommandLineArgs 方法來獲取命令行參數(shù),不過,有一點(diǎn)得注意,GetCommandLineArgs 方法所返回的字符串?dāng)?shù)組中,第一個(gè)元素是當(dāng)前程序的全路徑,從第二個(gè)元素起才是命令行參數(shù)。

比如,你可以這樣:

    string[] pargs = Environment.GetCommandLineArgs();

 

除了上述萬能方法外,特定于 WPF ,框架也提供了專門的方案。

Application 類用于管理 WPF 應(yīng)用程序相關(guān)的各種數(shù)據(jù),它有一個(gè) Startup 事件,當(dāng)應(yīng)用程序啟動(dòng)時(shí),這個(gè)事件會(huì)發(fā)生,我們可以在這個(gè)事件中做一些初始化工作,比如分析命令行參數(shù),實(shí)例化要顯示的窗口等。其中,事件參數(shù) e (類型StartupEventArgs),有一個(gè) Args 屬性,是一個(gè)字符串?dāng)?shù)組,里面所包含的就是命令行參數(shù)。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式