我有C #Windows表单应用程序,我正在做很多复选框,并将它们写入并读取到名为test.json
的JSON格式文件。现在我想将test.json与program.exe一起使用,我的program.exe将在test.json中写入复选框。因此,我创建Load event handler
并希望使用我的GetCommandLineArgs()
。
private void Form1_Load(object sender, EventArgs e)
{
string[] args = Environment.GetCommandLineArgs();
}
我知道我有2个参数。[0] - program.exe
和[1] - test.json
。需要一些想法如何使其发挥作用。
我的问题是:
如何制作2个元素的args列表。其中0是program.exe,1是test.json。当有可能没有参数或只有一个参数时,如何使用args.length
答案 0 :(得分:2)
如何制作2个元素的args列表。其中0是program.exe,1是test.json
要执行此操作,您可以通过打开项目属性窗口并导航到Debug选项卡从visual studio中进行调试,从那里可以指定所需的命令行参数,如下所示:
您可以使用Environment.GetCommandLineArgs()
,我认为这有点奇怪。它为您提供当前正在运行的可执行文件名称。所以在你的情况下,你最终会得到你所要求的。
[0] - program.exe and [1] - test.json
当有可能没有参数或只有一个参数时,如何使用args.Length。
这很简单,Environment.GetCommandLineArgs()
会返回string[]
。检查所需长度并相应处理。
var commandLineArgs = Environment.GetCommandLineArgs();
if (commandLineArgs.Length > 0)
{
// Do something magical...
}
else
{
// Nothing was passed in...
}
答案 1 :(得分:1)
这样的事情:
var cmdArgs = Environment.GetCommandLineArgs();
if (cmdArgs.Length < 2)
{
MessageBox.Show("No JSON file specified!");
}
var jsonFilename = cmdArgs[1];
如果您执行更复杂的命令行参数解析,我建议使用像this one这样的现有库。
<强>更新强>
您可以在此处附加事件处理程序(或创建一个新的事件处理程序):