應(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ù)。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26