为什么我不能在C#中使用块内部的Process.Start方法(String,String)?

时间:2017-11-07 14:51:32

标签: c# process using

我有一个包含此代码块的旧程序:

private void openConfigToolStripMenuItem_Click(object sender, EventArgs e)
{
    if (!File.Exists(Path.Combine(a, b))) { writeConf(); }
    Process.Start("notepad.exe", Path.Combine(c, d));

}

我想用using块优化代码,但我不能声明 Process.Start方法(String,String)。

我试过了:

    private void openConfigToolStripMenuItem_Click(object sender, EventArgs e)
    {
        if (!File.Exists(Path.Combine(a, b))) { writeConf(); }

        using (Process proc = new Process())
        {
            proc.Start("notepad.exe", Path.Combine(c, d)); //Problem
        }

    }

我的程序有什么问题?

1 个答案:

答案 0 :(得分:3)

您在使用块内部使用的启动方法是静态的。

public static Process Start(string fileName, string arguments);

你必须像

一样打电话
using (Process proc = new Process())
{
    proc.StartInfo.Arguments = Path.Combine(c, d);
    proc.StartInfo.FileName = "notepad.exe";
    proc.Start();
}