未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 行 482: Edges[1][Nedge + 1] = vv0[j];我跟踪得Nedge = 0, j = 1, vvo[j] = 19.
为什么会产生这样的错误呢?
堆栈跟踪: [NullReferenceException: 未将对象引用设置到对象的实例。]
   dzLineMain.CdzLine.Triangulate(Int32 nvert) in e:\inetpub\wwwroot\dzline\dzlinemain.aspx.cs:482
   dzLineMain.WebForm1.Page_Load(Object sender, EventArgs e) in e:\inetpub\wwwroot\dzline\dzlinemain.aspx.cs:92
   System.Web.UI.Control.OnLoad(EventArgs e)
   System.Web.UI.Control.LoadRecursive()
   System.Web.UI.Page.ProcessRequestMain()
  

解决方案 »

  1.   

    二维数组Edges,初始化了没?
      

  2.   

    public int [][]Edges;
    int[][] Edges = new int[4][];
    for(int a = 0; a < Edges.Length; a++) 
    {
      Edges[a] = new int[600];
    }
    if(inc)
    {
    Edges[1][Nedge + 1] = vv0[j];
    Edges[2][Nedge + 1] = vv1[j];
    Edges[1][Nedge + 2] = vv1[j];
    Edges[2][Nedge + 2] = vv2[j];
    Edges[1][Nedge + 3] = vv2[j];
    Edges[2][Nedge + 3] = vv0[j];
    Nedge = Nedge + 3;
    vv0[j] = vv0[ntri];
    vv1[j] = vv1[ntri];
    vv2[j] = vv2[ntri];
    PreCalc[j] = PreCalc[ntri];
    xc[j] = xc[ntri];
    yc[j] = yc[ntri];
    r[j] = r[ntri];
    PreCalc[ntri] = 0;
    Complete[j] = Complete[ntri];
    j--;
    ntri--;
    }
    代码片段,请大家帮忙,谢谢!
      

  3.   

    你这个是交错的数组如下:
    交错的数组(数组的数组)
    可以像下例所示那样初始化交错的数组:int[][] numbers = new int[2][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} };
    可省略第一个数组的大小,如下所示:int[][] numbers = new int[][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} };
    -或-int[][] numbers = { new int[] {2,3,4}, new int[] {5,6,7,8,9} };
    请注意,对于交错数组的元素没有初始化语法。
      

  4.   

    同意 fphuang(人在哈尔滨@net)
      

  5.   

    public int [][]Edges;
    int[][] Edges = new int[4][];
    for(int a = 0; a < Edges.Length; a++) 
    {
      Edges[a] = new int[600];
    }
    这段就是初始化数组的了,我新建了一个工程试过,没问题!