C#"命令行参数异常"

时间:2017-08-22 06:18:59

标签: c# command-line-arguments

如何将字符串命令行参数存储到自定义的字符串变量中。因为它倾向于给出#34;数组索引超出范围边界" ...

这是代码,

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Prac1_e
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Enter a String and a number : ");
            Console.Read();
            string str = args[0];
            int n = Convert.ToInt32(args[1]);
            Console.WriteLine(str);
            Console.WriteLine(n);
            Console.ReadKey();
        }
    }
}

4 个答案:

答案 0 :(得分:1)

您正在尝试访问前两个命令行参数(agrs[0]args[1]),但没有通过任何参数。只是传递一些论点,你应该没事:

Program somearg anotherarg

答案 1 :(得分:0)

参数需要通过命令行以<div class='loading square'></div>等格式传递。此外,由于您要转换为appname.exe "arg1" "arg2",您可能需要验证Int是否可以转换为arg[1]

Int

如果您希望通过命令行捕获运行时参数,则需要执行以下操作:

    static void Main(string[] args)
    {
        Console.WriteLine("Enter a String and a number : ");
        Console.Read();
        if(args.Length >= 2)
        {
            string str = args[0];
            int n = Convert.ToInt32(args[1]);
            Console.WriteLine(str);
            Console.WriteLine(n);
            Console.ReadKey();
        }
        else
        {
            Console.WriteLine("No Args passed");
        }
    }

答案 2 :(得分:0)

如果您打算从命令行读取在运行时传递的参数,则需要从Console对象中读取。你可以尝试这段代码。

static void Main(string[] args)
    {
        Console.WriteLine("Enter a String and a number : ");

        string str = Console.ReadLine();
        int n = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine(str);
        Console.WriteLine(n);
        Console.ReadKey();
    }

答案 3 :(得分:0)

此代码中没有错误。但是,当您错误地执行程序时,您将获得上述错误。 这应该是正确的方法:

import { Injectable } from "@angular/core/src/core";
import { Convertor } from "./Convertor"

export class AppService {
    constructor(private _convertor: Convertor)
    {

    }

   foo() {
      let a = ["1", "2", "3"]
      return a.map(this.blah)
   }

   blah(s: string): number {
     return this._convertor.parseInt(s)
   }

}

例如:

[program name] [argument 1] [argument 2]