C#没有争论被传递到主要

时间:2016-07-15 17:51:49

标签: c# main args

我一直试图让我的参数传递给我在C#中的main方法。主要是我只想捕获双击的文件路径。我有自定义扩展名的文件,当它运行时打开我的程序。那部分有效。

    static string file = "";

    [STAThread]
    static void Main(string[] args)
    {
        Application.EnableVisualStyles();

        if (args.Length > 0) file = args[0];

        Application.Run(new Form1());
    }

    public Form1()
    {
        InitializeControls();
    }

我也尝试过这种方式,但并没有太大的不同。

    static string file = "";

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();

        string[] args = Environment.GetCommandLineArgs();
        if (args.Length > 0) file = args[0];

        Application.Run(new Form1());
    }

    public Form1()
    {
        InitializeControls();
    }

值得一提的是,我在部分课程中有这个。我不知道这是否会直接影响它。

如果我能够获得双击的文件,我真的不需要获取args但我觉得这是唯一的方法,现在我很好奇。

我错过了什么让我无法将args传递给我的主?

1 个答案:

答案 0 :(得分:1)

如果在命令提示符下运行“ftype”,程序类型应显示为:

YOURTYPE="yourProgram.exe" "%1"

如果"%1"没有以完全相同的方式出现,那么关联是错误的(它不会将文件的名称作为参数传递)。试一试。