繁体   English   中英

C#中的命令行

[英]command line in C#

我有一个要从命令提示符运行的工具。

代码是

    static void Main(string[] args)
    {

        string User;            
        if (args[0].Length  != 0)
        {
             User = args[0];
        }
        else
        {
        Console.Write("Please Enter the Username");
        User = Console.ReadLine();
        }

如果我没有在命令提示符下输入“ tool.exe”后的用户名或第一个参数,则会抛出异常,例如“索引超出数组范围”

我想输入ouptut,如果我不输入参数-它应该提示我输入用户名。 请帮帮我。

args是一个数组,应该检查其长度。 当您检查args[0].Length ,实际上是在假设数组中至少有一个元素,因此您要检查第一项的Length

尝试

if (args.Length != 0)

而是检查命令行参数数组的长度。

您不想在项目上调用“ Length ”。

            \/ Change here
     if (args.Length  != 0)
    {
         User = args[0];
    }
    else
    {
    Console.Write("Please Enter the Username");
    User = Console.ReadLine();
    }

您需要将if更改为:

static void Main(string[] args)
{

    string User;            
    if (args.Length  != 0) // Change from args[0] to args
    {
         User = args[0];
    }
    else
    {
    Console.Write("Please Enter the Username");
    User = Console.ReadLine();
    }
}

在此调用之后,请确保在string.IsNullOrEmpty(User)字符串之前先执行一个string.IsNullOrEmpty(User)

做这个

static void Main(string[] args)
{

string User;            
if (args.Length > 0)
{
     User = args[0];
}
else
{
Console.Write("Please Enter the Username");
User = Console.ReadLine();
}
}

您必须检查参数数组的长度,即参数数量。 当前,您正在检查args [0]的大小。

if (args.Length  != 0)
{
  // command have some params
}
else
{
 // command have no params
}

只需替换以下行:

if(args [0] .Length!= 0)

使用以下代码:

if(arg.Length !=0) <br>

在您的代码中,您已在args数组中引用了项目0,然后检查其长度。
由于要检查数组的长度,请使用数组本身的Length属性

这样,您就可以查看集合string []中的第一个元素。

if (args[0].Length  != 0)

如果没有任何参数,这将给出一个例外。 如果您要检查是否有任何参数,下面是正确的语句。

if (args.Length  != 0)
//Or this
if (args.Any())

观察Any()是名称空间System.Linq的一部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM