所以我希望其他用户能够运行我的程序发送参数。怎么做这样的事情?
7 回答
你的意思是启动时的args?如myapp.exe blah blah2 blah3
使您的主要方法如下所示:
public static void Main(string[] args)
{
}
nowargs
是传递给程序的参数数组。因此,在示例情况下,, args[0] == "blah"
,args[1] == "blah2"
等
如果你有一个 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];
该程序从具有此签名的方法运行
public static void Main(string[] args)
该参数args
将包含命令行参数,按空格分隔。
虽然 string[] args 工作得很好,但值得一提的是Environment.GetCommandLineArgs。
Main
您可以从的可选参数中读取命令行string[]
参数:
static void Main(string[] args)
{
if (args.Length >= 1)
{
string x = args[0];
// etc...
}
}
请注意,Main 方法的以下声明也是有效的,但是您无权访问命令行参数:
static void Main()
{
// ...
}
有关更多详细信息,请参阅文档。
这是默认支持的,参数将出现在传递给程序的 args 数组中。
public static void Main(string[] args)
如果你说
App.exe Hello World What's Up
在命令行上,您将收到一个 args 数组,如下所示:
[0] = "Hello"
[1] = "World"
[2] = "What's"
[3] = "Up"
由你决定你想要什么参数,它们将如何格式化等。
试试这些:
http://sourceforge.net/projects/cshapoptparse/
http://www.codeproject.com/KB/recipes/command_line.aspx
它们基本上允许您定义 args 并以 OO 方式解析它们,而不必进行大量字符串比较之类的东西。我在java中使用了一个类似的,它很棒