使用args工具

时间:2011-11-30 16:48:50

标签: c#

using System;

namespace WS_7_A
{
    class Calculator
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("~~~~~~ Acme Calculator-o-Matic ~~~~~~");
            Console.WriteLine("Enter two integers to add...");
            double number1 = Convert.ToDouble(args[0]);
            double number2 = Convert.ToDouble(args[1]);
            Console.WriteLine("Answer: {0}", Calculator.add(number1, number2));
            Console.ReadKey(true);
        }


        private static int add(int a, int b)
        {
            return (a + b);
        }

        private static double add ( double a , double b)
        {
            return ( a + b);
        }
    }
}

我收到的错误是System.IndexOutOfRangeException: Index was outside the bounds of the array.我做错了什么?

4 个答案:

答案 0 :(得分:3)

传递给args方法的Main数组参数将包含传递给可执行文件的命令行参数。如果没有传递,它将为空。

您的代码需要在运行可执行文件时在命令行传递2个参数:args[0]args[1],因为这是您尝试阅读的内容。因此,要正确运行应用程序,必须在命令行传递这两个参数:

Calculator.exe 1 2

或者您可能希望从用户那里阅读它们,在这种情况下您不使用args变量,但是您从控制台读取它们:

double number1 = Convert.ToDouble(Console.ReadLine());
double number2 = Convert.ToDouble(Console.ReadLine());

现在您只需使用Calculator.exe运行您的应用程序。

答案 1 :(得分:0)

您是否检查过args数组的计数?你是否用这样的控制台启动程序?

myprogram.exe 34 54

答案 2 :(得分:0)

您需要构建此.exe,然后使用两个参数(例如app.exe 1 2)从命令行运行它。

您也可以在VS中执行此操作,方法是转到项目属性(右键单击项目 - >属性),在调试下将命令行参数添加到框中(例如1 2)。

答案 3 :(得分:0)

您应该使用:

double number1 = Double.Parse(Console.ReadLine());

甚至:

double number1;
if (!double.TryParse(Console.ReadLine(), out number1)
{
    Console.WriteLine("Number is Invalid");
    //Some sort of code to allow the user to re-enter the number, or exit the app as preferred.
}

args是传递给命令行参数的内容。 例如,呼叫:

MyApp.exe 123 456

  • args[0]将是123
  • args[1]将为456