using System;
public class ForEachLoop
{
程序如下:编译通过,但运行说程序越界,调试在  array1[index]=args[index];停止。
 static void Main( string[] args)
   {
      int index;
      string[] array1=new string[3];
      for(  index=0;index<3;index++)
      {
         array1[index]=args[index];
      }
      foreach(string strName in array1)
      {
         Console.WriteLine(strName);
      }
   }
}

解决方案 »

  1.   

    static void Main( string[] args)
       {
          int index;
          string[] array1=new string[3];
          for(  index=0;index<3 && index<args.Length;index++)
          {
             array1[index]=args[index];
          }
          foreach(string strName in array1)
          {
             Console.WriteLine(strName);
          }
       }
    }
      

  2.   

    你确定参数给够了???该成这样:
          int index;
          string[] array1=new string[args.length];
          for(  index=0;index<args.length;index++)
          {
             array1[index]=args[index];
          }
      

  3.   

    很显然是args下标越界。解决方案:一、
    加在开头
    if ( args.Length < 3 )
    {
      Console.WriteLine( "Invalid parameter number." );
      return 100;
    }二、
          for(  index=0;index<3;index++)
          {
             if ( args.Length < index )
               break;
             array1[index]=args[index];
          }