C#中Process和ProcessStartInfo有什么区别?

ProcessProcessStartInfo什么区别? 我已经用它们来启动外部程序,但必须有两种方法可以做到这一点。 这是两个例子。

 Process notePad = new Process(); notePad.StartInfo.FileName = "notepad.exe"; notePad.StartInfo.Arguments = "ProcessStart.cs"; notePad.Start(); 

 ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = "notepad.exe"; startInfo.Arguments = "ProcessStart.cs"; Process.Start(startInfo); 

它们非常接近,都来自Process类。 除了你提到的之外, Process.Start实际上有4个其他重载 ,都是静态的。

一种是静态方法 。 它返回表示已启动进程的Process对象。 例如,您可以使用这种方式使用单行代码启动进程。

另一种是成员方法 ,它重用当前对象而不是返回一个新对象。

嘿。

如果仔细查看代码,您会注意到它们都使用相同的类。 第一个示例中的StartInfo属性是一个ProcessStartInfo ,毫不含糊。 在第二个示例中,您将在Process调用静态.Start方法。

那有什么区别? 重大。 他们是不同的class级。 一个用于启动进程,一个用于说明要启动哪个进程(以及许多其他小东西,比如捕获输出等)。 在第一种情况下,您只需使用该类具有的默认ProcessStartInfo属性。