C#プログラミングで発生した問題:System.NullReferenceExceptionとその反省

1120 ワード

最近Kinectの体感ゲームを書いていて、System.Null ReferenceExceptionという問題に遭遇しました.30分で解決したが、自分では多くの反省がある.
            
  Skeleton[] two = new Skeleton[2];
  two[0] = new Skeleton();
  two[1] = new Skeleton();

  two = GetTwoSkeleton(e);
            if(two[0] != null)
                textBlock.Text = "       "+two[0].ToString();
          
        System.Null ReferenceExceptionのエラーはif(two[0]!=null)というコードで発生します.次のように変更します.
  Skeleton[]  two = GetTwoSkeleton(e);
         if(two[0] != null)
                 textBlock.Text = "@@"+two[0].ToString();
       問題は順調に解決した.
       この問題が私に与えた収穫はC#のこの場所の設計がとても素晴らしいことです.私の前の書き方は非常に無責任だったからです.メモリにnewが新しい配列を出し、配列内の各オブジェクトにnewが出たが、私はこの配列に関数の戻り値を割り当てた.これにより、newから出たメモリが漏れ、ポインタが彼らを指していません.
        この小さなゲームで私が浪費したのは2つのボーンのメモリ空間だけで、もし私がこのようなコードをサーバーに書くと、1つのアクセスが1つの配列のメモリ空間の浪費をもたらし、100万のアクセスがもたらしたメモリ空間の浪費は非常に大きく、結果は想像にたえない.C#ここのエラーは私に良いプログラミング習慣を身につけさせた.
       メモリの漏洩を避けて、責任ある良い青年になります!