我将参数传递给基于以下代码的程序。代码根据参数值调用特定类的方法。我想扩展它以允许多个参数。需要什么样的代码才能传递多个参数以及保持当前的功能?
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 :(得分: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
答案 1 :(得分:0)
您可以让每个SomeClass.DoSomething()
方法都使用string[] args
参数。然后你可以存储除第一个之外的所有参数:var argsRest = args.Skip(1).ToList()
(你需要使用Linq),然后你可以传递args:SomeClass.DoSomething(argsRest)
。
这将让你主要处理选择要调用的类,然后留下每个类来决定如何处理其余的args。