处理多个传递的参数

时间:2015-12-28 14:36:02

标签: c# sql-server

我将参数传递给基于以下代码的程序。代码根据参数值调用特定类的方法。我想扩展它以允许多个参数。需要什么样的代码才能传递多个参数以及保持当前的功能?

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;

2 个答案:

答案 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。