簡易コピーを作成する Clone メソッドの実装です。

継承クラスに引数なしのコンストラクタを作成しておき、Reflection でインスタンス化します。

そのために、Protected なコンストラクタを、このクラスに作成しておきます。

 protected VBArrayBase() 
 {
     m_Bounds = new VBArrayBound[0];
     m_Array = null;
 }

Clone メソッドは次のようになります。

 public virtual object Clone()
 {
     Type t = this.GetType();
     ConstructorInfo ci = t.GetConstructor(
                                 BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance,
                                 null,
                                 new Type[] { },
                                 null
                             );
     VBArrayBase<T> newInstance = (VBArrayBase<T>)ci.Invoke(new object[]{});
     newInstance.m_Bounds = CopyBounds(m_Bounds);
     newInstance.m_Array = (Array)m_Array.Clone();
     return newInstance;
 }



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