0

DataTable クラスの使用に役立ついくつかの新しいメソッドを追加するクラスを作成したいと考えています。静的クラスは避けたいので、クラスを作成しました

MyDataTable : DataTable

そしてそこに私の方法。

DataTable オブジェクトを MyDataTable オブジェクトに変換するにはどうすればよいですか? 私はすでに試しました

MyDataTable dt2 = (MyDataTable)dt;

しかし、InvalidCastException を返します。

私は今、それがこのように機能しないことを知っています。しかし、どうすればこれを解決できるかもわかりません。誰でもこれで私を助けることができますか?

4

3 に答える 3

2

もちろん、InvalidCastExceptionすべてDataTableが type であるとは限らないので、それは原因となりMyDataTableます。タイプのインスタンスを作成する必要があります。

MyDataTable myTable = new MyDataTable();

通常、継承元の型の最も使用されているコンストラクターを提供します。型のコンストラクターから基本コンストラクターを呼び出すことができ ます。たとえば、次のようになります。

public class MyDataTable : DataTable
{
    public MyDataTable(string name)
        : base(name)
    {
        // additional initialization
    }
}
于 2012-12-11T11:17:38.637 に答える
1

DataTable から継承されたカスタム クラスの暗黙のキャストを記述することもできます。

于 2012-12-11T11:19:51.067 に答える
0

次の記事では、DataTables と DataRows から拡張する方法について概説しています。

http://www.internetworkconsulting.net/extending-data-tables-and-rows

于 2014-04-02T16:37:34.617 に答える