我的Windows应用程序接受args,我使用它来设置Window行为
问题是我需要在一些参数中传递文本,但是我的应用程序将其视为多个args,所以,这个:
"http://www.google.com/" contact 450 300 false "Contact Info" true "Stay Visible" true
实际上有 11 个参数,而不是我期待的 9 。
将“联系信息”和“保持可见”作为唯一参数传递的技巧是什么?
答案 0 :(得分:6)
您是否直接从命令行运行它?如果是这样,我希望工作得很好。 (顺便说一句,我假设您正在使用Main方法中的参数?)
例如,这是一个小测试应用程序:
using System;
class Test
{
static void Main(string[] args)
{
foreach (string arg in args)
{
Console.WriteLine(arg);
}
}
}
执行:
>test.exe first "second arg" third
first
second arg
third
这是一个控制台应用程序,但就传递给Main方法的内容而言,它与WinForms之间没有区别。
答案 1 :(得分:2)
MSDN says,它应该按照你提到的方式工作。
class CommandLine
{
static void Main(string[] args)
{
// The Length property provides the number of array elements
System.Console.WriteLine("parameter count = {0}", args.Length);
for (int i = 0; i < args.Length; i++)
{
System.Console.WriteLine("Arg[{0}] = [{1}]", i, args[i]);
}
}
}
答案 2 :(得分:0)
您如何执行申请?
如果从其他应用程序执行它,您可能忘记正确格式化参数字符串:
String arguments = "First \"Sec ond\" Third Fourth \"Fi fth\""
将有五个参数,而
String arguments = "First Sec ond Third Fourth Fi fth"
会有七个。
如果参数位于快捷方式目标属性中,则同样适用:
"C:\My Path\MyApplication.exe" "Argument 1" Argument2 Argument3 "Argument 4"
而不是
"C:\My Path\MyApplication.exe" Argument 1 Argument2 Argument3 Argument 4