C# – 确定参数是否已通过的方法失败
作者:互联网
我正在使用c#创建一个Windows窗体应用程序,如果传递包含该文件路径的参数,则可以在启动时打开该文件.
但是,它无法准确确定参数是否已通过.即使我没有传递任何参数,它仍然会尝试打开一个文件.
这是我的代码:
string[] args = Environment.GetCommandLineArgs();
if (args == null || args.Length == 0)
{
}
else
{
try
{
ListData ld = new LmReader.LmReader().readLmList(args[0]);
listItemsList.Items.Clear();
foreach (ListItemList li in ld.lil)
{
ListViewItem lvi = new ListViewItem(li.text);
lvi.Font = li.itemFont;
listItemsList.Items.Add(lvi);
}
filenameOpen = selectOpenLocation.FileName;
this.Text = "List Maker - " + Path.GetFileNameWithoutExtension(args[0]);
}
catch (Exception ex)
{
new Error().doError("Your list could not be opened.", ex);
}
}
我究竟做错了什么?
解决方法:
从docs:
The first element in the array contains the file name of the executing
program
因此
args.Length == 0
应该
args.Length <= 1
在你的情况下.
标签:c,argument-passing 来源: https://codeday.me/bug/20190716/1477858.html