C#想要打开带参数的程序,但运行程序是显示索引超出了数据界限,应该怎样解决

img

img
想要通过第一张传入的字符串,在第二张中对比,运行第二个程序会显示索引超出了数据界限,应该怎样解决?

args是main函数接收的局部参数,可以定义个全局变量,在main函数里复制一份到全局变量里,然后再程序其他地方调用。

static class Program
{
    public static string[] mainArgs; //定义全局变量。
    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main(string[] args)//args是局部变量,只在main函数内有效
    {
        mainArgs = (string[])args.Clone();
        
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
        
    }
}

使用方法: Program.mainArgs[0]

需要先判断args的长度是否大于0,如果大于0,再写if(args[0] == "eh")
也就是:
if(args.Length > 0)
{
//原先的代码
if(args[0] == "eh")
{/省略了/}
}