我想创建一个类,它将添加一些有助于使用DataTable类的新方法。我想避免静态类,所以我创建了一个类
MyDataTable : DataTable
和我的方法。
如何将DataTable对象转换为MyDataTable对象? 我已经尝试了
MyDataTable dt2 = (MyDataTable)dt;
但它返回InvalidCastException。
我现在知道它不会这样。但我也不知道如何解决这个问题。任何人都可以帮我这个吗?
答案 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