gpt4 book ai didi

c# - 如何继承 DataRow 类以便继承的 DataTable 可以具有 DataTable.NewRow()

转载 作者:行者123 更新时间:2023-11-30 14:58:40 25 4
gpt4 key购买 nike

所以我想通过在类中添加int来扩展DataRow类显然很简单

public class DataRowWithInt : DataRow
{
// Properties ///////////////////////////////////////////////////

public int integer
{
get;
set;
}

// Constructor //////////////////////////////////////////////////

public DataRowWithInt(DataRowBuilder builder)
: base(builder)
{
}
}

现在当你想创建新行时你必须调用

DataTable intDataTable = new DataTable();
intDataTable.Columns.Add("temp");
DataRowWithInt row = intDataTable.NewRow();

但这会给您带来转换错误。我怎样才能避免这个问题并将 DataRowWithInt 转换为 intDataTable

谢谢。

-- 编辑--

我知道 DataTable 类不会返回 DataRowWithIn。我想创建一个继承的 DataTable 类,但我不知道在 NewRow 类上写什么

最佳答案

如果根据@Tim 在评论中的建议,您不能简单地将 DataTable 与 int 类型的单个 DataColumn 一起使用,请考虑创建一个类型化的 DataTable。使用类型化的 DataTable,您可以定义列名称和类型以及许多其他 DataTable 功能和行为,包括 NewRow() 的工作方式。

可以在 codeproject.com 上的这篇文章中找到执行此操作的演示:
How to Manually Create a Typed DataTable

类型化 DataTable 的一个好处是您不需要通过索引或列名称“间接”引用列,您可以使用属性表示法引用列,Visual Studio 的 Intellisense 可以帮助您解决问题。这是一个例子:

var intDataTable = new YourTypedDataTable();
YourTypedDataRow row = intDataTable.NewRow();
row.Temp = 100;
intDataTable.Rows.Add(row);

关于c# - 如何继承 DataRow 类以便继承的 DataTable 可以具有 DataTable.NewRow(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18241895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com