索引超出了数组systems.diagnostic.process的范围

时间:2013-03-04 06:12:06

标签: c# arrays indexing

未处理的例外:

  

System.IndexOutOfRangeException:索引超出了数组的范围。


  

在C:\ Users \ Seif \中的HPLog.MultiLevelPointer.ProcessMem.Main(String [] args)   Documents \ Visual Studio 2010 \ Projects \ HPLog \ HPLog \ Program.cs:第61行   按任意键继续 。 。

Line61   System.Diagnostics.Process[] Client =  
                System.Diagnostics.Process.GetProcessesByName("Client");
         ProcessMemoryReader preader = new ProcessMemoryReader();

         preader.ReadProcess = Client[0];
         preader.OpenProcess();

3 个答案:

答案 0 :(得分:4)

如果您甚至没有提出问题,请回答:

System.Diagnostics.Process[] Client =  
            System.Diagnostics.Process.GetProcessesByName("Client");
 ProcessMemoryReader preader = new ProcessMemoryReader();

 if (Client != null && Client.Length > 0) {
     preader.ReadProcess = Client[0];
     preader.OpenProcess();
 }
 else {
     // Error handling...
 }

答案 1 :(得分:0)

尝试这样的事情:

try
{
   System.Diagnostics.Process Client = System.Diagnostics.Process.GetProcessesByName("Client")[0];
}
catch (IndexOutOfRangeException e)
{
    System.Diagnostics.Process Client = null;
}

然后在使用Client之前,请确保它不为null

另外,您确定'客户'是实际的流程名称吗?

答案 2 :(得分:0)

在使用数组之前,您应该测试它是null还是包含任何项目。因为您总是有可能不存在具有该名称的进程。