Shi*_*chi 3 c# datatable inheritance datarow
所以我想DataRow
通过在类中添加int 来扩展类显然它很简单
public class DataRowWithInt : DataRow
{
// Properties ///////////////////////////////////////////////////
public int integer
{
get;
set;
}
// Constructor //////////////////////////////////////////////////
public DataRowWithInt(DataRowBuilder builder)
: base(builder)
{
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当您想要创建新行时,您必须调用
DataTable intDataTable = new DataTable();
intDataTable.Columns.Add("temp");
DataRowWithInt row = intDataTable.NewRow();
Run Code Online (Sandbox Code Playgroud)
但这会给你转换错误.我怎样才能避免这个问题,并得到DataRowWithInt
到intDataTable
?
谢谢.
- 编辑 -
我知道DataTable类不会返回DataRowWithIn.我想创建一个继承的DataTable类,但我不知道在NewRow类上写什么
如果你不能简单地在评论中使用带有@Tim int
建议类型的单个DataColumn的DataTable ,那么考虑创建一个类型化的DataTable.使用类型化的DataTable,您可以定义列名称和类型以及许多其他DataTable功能和行为,包括如何NewRow()
工作.
可以在codeproject.com上的文章中找到执行此操作的演示:
如何手动创建类型化DataTable
关于类型化DataTable的一个好处是你不需要通过索引或列名"间接"引用列,你可以使用属性表示法引用列,Visual Studio的Intellisense帮助你.这是一个例子:
var intDataTable = new YourTypedDataTable();
YourTypedDataRow row = intDataTable.NewRow();
row.Temp = 100;
intDataTable.Rows.Add(row);
Run Code Online (Sandbox Code Playgroud)