C# 什么';这是进程[]和进程()[]之间的区别
我在为我的模式扫描仪做研究,但我遇到了这个问题 我看到的模式扫描器需要一个过程的处理程序,但我的方式是这样做的C# 什么';这是进程[]和进程()[]之间的区别,c#,C#,我在为我的模式扫描仪做研究,但我遇到了这个问题 我看到的模式扫描器需要一个过程的处理程序,但我的方式是这样做的 Process[] P = Process.GetProcessesByName("pName"); 没有p.Handle,我去了msdn,但那里说有。但为什么我的不呢 这两行代码之间有什么区别 Process P = Process.GetProcessesByName("pName")[0]; Process[] P = Process.GetProcessesByName("p
Process[] P = Process.GetProcessesByName("pName");
没有p.Handle,我去了msdn,但那里说有。但为什么我的不呢
这两行代码之间有什么区别
Process P = Process.GetProcessesByName("pName")[0];
Process[] P = Process.GetProcessesByName("pName");
这将获取名称为“pName”的第一个进程: 请注意,如果没有任何异常,这将导致“索引超出边界”异常 这将获取名称为“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
}
这将获取名称为“pName”的第一个进程: 请注意,如果没有任何异常,这将导致“索引超出边界”异常 这将获取名称为“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
}
getProcessByName
返回进程的数组。具有句柄
属性。因此,您需要选择一个返回的进程
对象并调用.Handle
。注意第一行末尾的[0]
,这将返回数组中的第一个元素。好的,谢谢。这对我来说有点明显,但我只是想确定一下。getProcessByName
返回一个Process
数组。具有句柄
属性。因此,您需要选择一个返回的进程
对象并调用.Handle
。注意第一行末尾的[0]
,这将返回数组中的第一个元素。好的,谢谢。这对我来说很明显,但我只是想确定一下。