Process.Kill非静态字段错误

时间:2016-02-24 18:30:06

标签: c# error-handling non-static

我想将.exe文件的信息读入另一个脚本。 之后,可以立即关闭此.exe文件。

我使用以下代码:

  static void CallFile()
  {
     Process.Start(File.exe);
     Process.Kill();
  }

我在多个网站上发现这些是用于打开和关闭特定文件的最佳/最简单的命令。但是,我的process.kill:

出现以下错误
An object reference is required for the non-static field, method, or property 'Process.Kill()'

它是一个静态的函数 通常添加单词static可以解决此错误。但是,这会给出修饰符static对此项无效的错误。谁能告诉我我做错了什么?

提前致谢

1 个答案:

答案 0 :(得分:1)

更改您的代码:

var p = Process.Start(File.exe);
p.Kill();

pProcess实例。您收到的错误消息是您不能直接在类上调用实例方法(即Process);你必须在该类的实例上调用它。例如,错误引用的所需“对象引用”将是p

以这种方式思考:直接调用Process.Kill();是没有意义的 - 例如,如果静态方法而不是实例方法;那个电话会针对什么过程?您可能有数百个进程在运行;它并不只是假设它是你开始的最后一个(例如通过Process.Start(File.exe);)。