2013-03-26 127 views
-2

我創建了一個窗口控制檯應用程序。這將從窗口任務調度程序獲取一個命令行參數(true/false)。應用程序從任務調度程序停止工作

我並沒有完全意識到這個過程。

我使用這個代碼讀取參數:

bool dateOffset = false; 
if (args.Length > 0) 
{ 
    bool.TryParse(args[1], out dateOffset); 
} 

但是當我運行從任務調度程序....它顯示錯誤like..Application名稱已停止工作異常..

我不知道問題是否出在我的代碼或任務scheduler..My代碼工作正常,當我調試它不帶參數..

+2

你應該採取第一個參數args [0]。 – 2013-03-26 13:35:38

+0

就是這樣......感謝很多..我怎麼能想念..謝謝 – James 2013-03-26 13:40:42

回答

1

你或許應該採取這將是ARGS第一個參數嘗試[0]。

1

如果你有一個參數,args[1]應該是:args[0]

2

問題在於以下幾點:在C#

bool.TryParse(args[1], out dateOffset); 

數組(通常)基於0,這意味着在陣列中的第一項是項0,而不是第1項

嘗試改變您的代碼:

bool.TryParse(args[0], out dateOffset); 
1

這裏:if (args.Length > 0)要檢查,看是否args數組至少有一個元素。

但是,bool.TryParse(args[1], out dateOffset);正試圖訪問數組中的第二個元素。

猜測當if條件的長度爲1但您嘗試訪問第二個元素時發生了什麼。

使用args[0]