Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使用实例引用进行访问_C#_System.diagnostics - Fatal编程技术网

C# 无法使用实例引用进行访问

C# 无法使用实例引用进行访问,c#,system.diagnostics,C#,System.diagnostics,虽然我可以做到这一点: System.Diagnostics.Process.Start(@"C:\MyFolder\MyProgram.cmd"); 我不能这样做: var process = new System.Diagnostics.Process(); process.Start(@"C:\MyFolder\MyProgram.cmd"); 错误:无法使用实例引用访问成员“System.Diagnostics.Process.Startstring”;改为使用类型名称限定它 这背后

虽然我可以做到这一点:

System.Diagnostics.Process.Start(@"C:\MyFolder\MyProgram.cmd");
我不能这样做:

var process = new System.Diagnostics.Process();
process.Start(@"C:\MyFolder\MyProgram.cmd");
错误:无法使用实例引用访问成员“System.Diagnostics.Process.Startstring”;改为使用类型名称限定它

这背后的原因是什么?谁能解释一下吗


提前谢谢

这是一种静态方法。您不能将其用于流程的实例:

使用空的,用于处理实例:

启动或重用此流程组件的StartInfo属性指定的流程资源,并将其与该组件关联


这是一种静态方法。您不能将其用于流程的实例:

使用空的,用于处理实例:

启动或重用此流程组件的StartInfo属性指定的流程资源,并将其与该组件关联

这是因为它是一种静态方法

不能从该类型的实例调用类的静态成员

这与通过this.MyStaticMethod在实例方法中调用私有静态方法相同

编辑:您可能希望设置流程的名称,然后调用该方法。

这是因为它是一个静态方法

不能从该类型的实例调用类的静态成员

这与通过this.MyStaticMethod在实例方法中调用私有静态方法相同


编辑:您可能希望设置进程的参数,然后调用该方法。

的所有参数化重载都是静态的。如果要使用第二种语法,则必须首先设置实例状态,这只是StartInfo的filename属性:


请注意,这应等同于System.Diagnostics.Process。Start@C:\MyFolder\MyProgram.cmd;因为正如所说:重载是创建新流程实例、设置StartInfo属性的FileName成员以及调用流程实例的Start的显式步骤的替代方法。

的所有参数化重载都是静态的。如果要使用第二种语法,则必须首先设置实例状态,这只是StartInfo的filename属性:


请注意,这应等同于System.Diagnostics.Process。Start@C:\MyFolder\MyProgram.cmd;因为正如上面所说:重载是创建新流程实例、设置StartInfo属性的FileName成员以及调用流程实例的Start等显式步骤的替代方法。

Thank lot@Jonesopolis.Thank lot@Jonesopolis.Thank Quantic。这真的很有帮助,谢谢你。这真的很有帮助。谢谢马吕斯。作为初学者,一切都是动态的,接下来就是静态方法。谢谢马吕斯。作为初学者,一切都是动态的,接下来就是静态方法。
public static Process Start(string fileName)
var proc = new Process();
proc.StartInfo.FileName = @"C:\MyFolder\MyProgram.cmd";
proc.Start();