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 回答