2015-12-28 90 views
-1

我將一個參數傳遞給基於以下代碼的程序。代碼根據參數值調用特定類的方法。我想擴大這個允許多個參數。需要什麼樣的代碼才能傳遞多個參數以及保持當前的功能?處理多個傳遞的參數

if (args != null && args.Length > 0) 
{ 
    if (args[0] == "1") 
    { 
     Order.RunOrder(); 
    } 
    if (args[0] == "2") 
    { 
     Shipment.RunShipment(); 
    } 
    if (args[0] == "3") 
    { 
     Acknowledgments.RunAcknowledgments(); 
    } 
    if (args[0] == "4") 
    { 
     Invoices.RunInvoices(); 
    } 
} 
else 
{ 
    Helper.AddtoLogFile("------ No program type parameter found"); 
} 
Helper.AddtoLogFile("-------Program Ends ----------"); 
return 0; 

回答

0

args只是一個參數數組,因此您總是支持多個參數。目前您正在使用

foo.exe 4 

開始您的應用程序,但你也可以用

foo.exe 4 DoSomethingFancyWithBar 

啓動它,然後代碼是這樣的,例如

if (args != null && args.Length > 1) 
{ 
    if (args[1] == "DoSomethingFancyWithBar") 
    { 
    // do something fancy with the bar here 
0

你可以有各您的SomeClass.DoSomething()方法需要參數string[] args。然後,您可以存儲除第一個參數外的所有參數:var argsRest = args.Skip(1).ToList()(您需要使用Linq進行此操作),然後您可以傳遞參數:SomeClass.DoSomething(argsRest)

這將讓你選擇要調用的類,然後讓每個類決定如何處理其餘的參數。