如何在控制台程序中接收参数?

时间:2010-05-21 18:05:05

标签: c# console command-line-arguments

所以我希望其他用户能够运行我的程序发送参数。该怎么办?

7 个答案:

答案 0 :(得分:8)

你的意思是args在发射时?例如myapp.exe blah blah2 blah3

让您的主要方法如下所示:

public static void Main(string[] args)
{

}

现在args是传递给程序的参数数组。因此,在示例中,args[0] == "blah"args[1] == "blah2"

答案 1 :(得分:8)

如果你有一个Main方法(你可以使用命令行应用程序),你可以直接访问它们作为args字符串数组参数。

public static void Main(string[] args) {
   var arg1 = args[0];
   var arg2 = args[1];
}

如果您在代码中有其他位置,则可以访问静态Environment.GetCommandLineArgs方法

//somewhere in your code
var args = Environment.GetCommandLineArgs();
var arg1 = args[0];
var arg2 = args[1];

答案 2 :(得分:4)

程序从具有此签名的方法运行

public static void Main(string[] args)

参数args将包含命令行参数,空格分割。

答案 3 :(得分:3)

虽然string [] args工作得很好,但值得一提的是Environment.GetCommandLineArgs

答案 4 :(得分:2)

您可以从Main的可选string[]参数中读取命令行参数:

static void Main(string[] args)
{
    if (args.Length >= 1)
    {
        string x = args[0];
        // etc...
    }
}

请注意,Main方法的以下声明也有效,但是您无权访问命令行参数:

static void Main()
{
    // ...
}

有关详细信息,请参阅documentation

答案 5 :(得分:2)

默认情况下支持此参数,参数将出现在传递给程序的args数组中。

public static void Main(string[] args)

如果你说

App.exe Hello World What's Up

在命令行上,您将收到如下的args数组:

[0] = "Hello"
[1] = "World"
[2] = "What's"
[3] = "Up"

由您来决定您想要的参数,格式化方式等等。

答案 6 :(得分:2)

试试这些:

http://sourceforge.net/projects/csharpoptparse/

http://www.codeproject.com/KB/recipes/command_line.aspx

它们基本上允许你定义args并以OO方式解析它们,而不是进行大量的字符串比较和类似的东西。我使用类似的java,它很棒