Top / .NET備忘録 / 09.配列 / 02.VBArrayBase / 01.コンストラクタ

最初に作成した、VBArrayBound を引数にとったコンストラクタを作成します。 与えた VBArrayBound の数が次元数になります。

 private VBArrayBound[] m_Bounds;    // コンストラクタの引数を保持 
 private Array m_Array;              // 要素を格納した Array オブジェクト
 
 public VBArrayBase(params VBArrayBound[] bounds)
 {
     m_Bounds = CopyBounds(bounds);
     m_Array = CreateArray(bounds);
 }
 
 private VBArrayBound[] CopyBounds(VBArrayBound[] bounds)
 {
     VBArrayBound[] newBounds = new VBArrayBound[bounds.Length];
     for (int i = 0; i < bounds.Length; i++)
     {
         newBounds[i] = bounds[i];
     }
     return newBounds;
 }
 
 private Array CreateArray(VBArrayBound[] bounds)
 {
     int[] lengths = new int[bounds.Length];
     int[] lowerBounds = new int[bounds.Length];
 
     for (int i = 0; i < bounds.Length; i++)
     {
         lengths[i] = bounds[i].Length;
         lowerBounds[i] = bounds[i].LBound;
     }
     return Array.CreateInstance(typeof(T), lengths, lowerBounds);
 }



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS
Last-modified: 2013-09-02 (月) 01:47:52 (1396d)