我想创建一个类,该类将添加一些有助于使用 DataTable 类的新方法。我想避免静态类,所以我创建了一个类
MyDataTable : DataTable
和我在那里的方法。
如何将 DataTable 对象转换为 MyDataTable 对象?我已经试过了
MyDataTable dt2 = (MyDataTable)dt;
但它返回一个 InvalidCastException。
我现在知道这种方式行不通。但我也不知道如何解决这个问题。谁能帮我这个?
我想创建一个类,该类将添加一些有助于使用 DataTable 类的新方法。我想避免静态类,所以我创建了一个类
MyDataTable : DataTable
和我在那里的方法。
如何将 DataTable 对象转换为 MyDataTable 对象?我已经试过了
MyDataTable dt2 = (MyDataTable)dt;
但它返回一个 InvalidCastException。
我现在知道这种方式行不通。但我也不知道如何解决这个问题。谁能帮我这个?
当然它会导致一个,InvalidCastException
因为不是每个DataTable
都是 type MyDataTable
。您需要创建您的类型的实例:
MyDataTable myTable = new MyDataTable();
通常我提供最常用的我继承的类型的构造函数。 您可以从您的类型的构造函数中调用基本构造函数。例如:
public class MyDataTable : DataTable
{
public MyDataTable(string name)
: base(name)
{
// additional initialization
}
}
您甚至可以为继承自 DataTable 的自定义类编写隐式转换。
以下文章概述了如何从 DataTables 和 DataRows 扩展:
http://www.internetworkconsulting.net/extending-data-tables-and-rows