2017-01-10 15 views
1

私はクラスCircularBufferを持っていますが、方法はCreateBufferです。クラスはいくつかのことを行いますが、時々クラス内で使用される配列のサイズを変更する必要があります。私はもうデータは必要ありません。c#アレイを再作成することはできますか?

static class CircularBuffer 
    { 
     static Array[,] buffer; 
     static int columns, rows; 

     public static void CreateBuffer(int columns, int rows) 
     { 
      buffer = new Array[rows,columns]; 
     } 

     //other methods that use the buffer 
    } 

バッファーのサイズは最大100 x 2048浮動小数点数です。これはメモリの問題を引き起こすか、それとも問題なく自動的に置き換えられますか? ありがとう

+3

いいえ..... –

+1

なぜクラスや構造体と組み合わせた 'List 'のような他のより良いコレクション型の代わりに多次元配列を使用していますか? –

答えて

2

あなたは技術的に言えば、何も再作成していません。単に新しい配列を作成し、変数の値(配列の参照先アドレス)を上書きします。

したがって、実際に置き換えているものを区別することが重要です。あなたは配列への参照だけを置き換えているわけではありません。

問題が解決しましたか?なし。あなたのコードでは、古い配列はもはや到達可能ではないため、GCによる収集の対象となります。コレクションが起こったのはGCまでですが、それは心配するべきではありません。

+0

ありがとう、よろしくお願いします – Tom

関連する問題