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();