所以我希望其他用户能够运行我的程序发送参数。该怎么办?
答案 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,它很棒