4

所以我希望其他用户能够运行我的程序发送参数。怎么做这样的事情?

4

7 回答 7

8

你的意思是启动时的args?如myapp.exe blah blah2 blah3

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

public static void Main(string[] args)
{

}

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

于 2010-05-21T18:07:20.070 回答
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];
于 2010-05-21T18:08:39.667 回答
4

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

public static void Main(string[] args)

该参数args将包含命令行参数,按空格分隔。

于 2010-05-21T18:07:17.167 回答
3

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

于 2010-05-21T18:27:24.073 回答
2

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

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

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

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

有关更多详细信息,请参阅文档

于 2010-05-21T18:06:54.593 回答
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"

由你决定你想要什么参数,它们将如何格式化等。

于 2010-05-21T18:07:16.230 回答
2

试试这些:

http://sourceforge.net/projects/cshapoptparse/

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

它们基本上允许您定义 args 并以 OO 方式解析它们,而不必进行大量字符串比较之类的东西。我在java中使用了一个类似的,它很棒

于 2010-05-21T18:08:06.483 回答