C#启动一个带有强制参数和cmd可选参数的程序

时间:2012-08-01 12:37:14

标签: c# arrays cmd

我需要使用数组(强制)和int时间(可选)从cmd调用程序。我从未这样做过,所以我对细节有点不稳定。

路径为D:\Robert\FactorialConsoleApplication\FactorialConsoleApplication\bin\Debug\FactorialConsoleApplication.exe

正如您所知,程序会计算数组中数字的阶乘。 int时间用作延迟以显示堆栈的进度。

如何使用参数调用程序? 提前谢谢!

P.S。这是一些代码

class Program
{
    public static void Progress(ProgressEventArgs e)
    {
        int result = e.getPartialResult;
        int stack_value = e.getValue ;
        double max = System.Convert.ToDouble(numbers[j]);
        System.Convert.ToDouble(stack_value);
        double percent = (stack_value / max) * 100;

        Console.CursorLeft = 18;
        Console.Write(result + " ");
        Console.CursorLeft = 46;
        Console.Write(System.Convert.ToInt32(percent) + "%      ");

    }
    public static void Calculate(int number, int time=0)
    {

        Factorial Fact = new Factorial();
        Fact.Progression += new Factorial.ProgressEventHandler(Progress);
        Console.Write("\n" + "Partial results : ");
        Console.CursorLeft = 35;
        Console.Write("Progress : ");         
        int Result = Fact.CalculateFactorial(number, time);
        Console.WriteLine(" ");
        Console.WriteLine("The factorial of " + number + " is : " + Result);


        Console.ReadLine();
    }

    static int j;
    static int[] numbers;


    public static void Main(string[] args)
    {
        int i=0;
        bool ok = false;
        string line = string.Empty;
        numbers = new int[10];
        Console.Write("Please insert wait time (0,1 or 2) : ");
        int time = int.Parse(Console.ReadLine()) * 1000;
        Console.Write("Please insert a number : ");
        do
        {
            line = Console.ReadLine();
            if (line != "")
            {
                i++;
                numbers[i] = int.Parse(line);


            }
            else
            {
                ok = true;
            }
        }
        while (ok == false);
        for (j = 1; j <= i; j++)
        {

            Calculate(numbers[j],time);
        }

    }
}

1 个答案:

答案 0 :(得分:0)

在.net中,您可以使用System.Diagnostics中的Process.Start来启动应用程序,也可以传递参数

例如Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");将打开Internet Explorer并将值"C:\\myPath\\myFile.htm"作为参数传递给它。有关更多示例,请查看Process.Start method上的MSDN文章

<强>更新 如果您希望将参数带到您的应用程序中,在启动时您不必执行任何操作,您已经这样做了,Main方法中的参数args将保存传递给您的应用程序的参数,只需尝试并将args数组中的这些值解析为int数组,你就可以了。