进程[]和进程()[]有什么区别

  • 本文关键字:进程 区别 c#
  • 更新时间 :
  • 英文 :


我正在为我的模式扫描仪做研究,但我遇到了这个问题。

我看到的模式扫描仪需要一个过程的处理程序,但我这样做的方式

Process[] P = Process.GetProcessesByName("pName");

没有P.Handle,我去了 msdn,但它说它有。但为什么我的没有呢?

这两行代码有什么区别?

Process P = Process.GetProcessesByName("pName")[0];
Process[] P = Process.GetProcessesByName("pName");

这将获取名称为"pName"的第一个进程:

Process P = Process.GetProcessesByName("pName")[0];

请注意,如果没有"索引越界"异常,这将导致"索引越界"异常。

这将获取名称为"pName"的所有进程的列表(或数组,实际上是(:

Process[] P = Process.GetProcessesByName("pName");

请注意,如果没有异常,这不会导致异常;它只会返回一个空数组。

对于后者,如果您想要第一个匹配项,您可以像前者一样对其进行索引:

Process[] P = Process.GetProcessesByName("pName");
if (P.Length > 0)
{
Process process = P[0];  //Get the first one
}
else
{
Log("No such process!");
}

或者(我会这样做的方式(使用 LINQ:

Process p = Process.GetProcessesByName("pName").FirstOrDefault();
if (p != null) 
{
//Do something with the process
}

最新更新