将DataTable对象转换为从DataTable继承的自定义类对象

时间:2012-12-11 11:10:09

标签: c# inheritance datatable

我想创建一个类,它将添加一些有助于使用DataTable类的新方法。我想避免静态类,所以我创建了一个类

MyDataTable : DataTable

和我的方法。

如何将DataTable对象转换为MyDataTable对象? 我已经尝试了

MyDataTable dt2 = (MyDataTable)dt;

但它返回InvalidCastException。

我现在知道它不会这样。但我也不知道如何解决这个问题。任何人都可以帮我这个吗?

3 个答案:

答案 0 :(得分:2)

当然它会导致InvalidCastException,因为不是每个DataTable都是MyDataTable类型。您需要创建类型的实例:

MyDataTable myTable = new MyDataTable();

通常我提供我继承的类型最常用的构造函数。您可以从您的类型的构造函数中调用base constructor。例如:

public class MyDataTable : DataTable
{
    public MyDataTable(string name)
        : base(name)
    {
        // additional initialization
    }
}

答案 1 :(得分:1)

您甚至可以为从DataTable继承的自定义类编写隐式强制转换。

答案 2 :(得分:0)

以下文章概述了如何从DataTables和DataRows扩展:

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