如何将字符串命令行参数存储到自定义的字符串变量中。因为它倾向于给出#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();
}
}
}
答案 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]