C#..关于DataRow dr = new DataRow();的问题..

来源:百度知道 编辑:UC知道 时间:2024/06/06 15:55:33
DataRow在定义时是不是只能写成DataRow dr=dt.NewRow();这种形式,而不能直接DataRow dr = new DataRow(); ?

为什么呢?

^_^

这样说吧你单纯的DataRow dr = new DataRow(); 谁知道你的dataRow是属于谁的呢,DataRow dr = dt.NewRow()的话就不一样了,都知道datarow是dt里面的一个

这是因为DataRow这个类并没有提供public的构造函数,所以不能直接new DataRow()

因为 DataRow 需要有已知的架构,而这个架构,需要从 DATATABLE 中继承

DataRow 和 DataColumn 对象是 DataTable 的主要组件。使用 DataRow 对象及其属性和方法检索、评估、插入、删除和更新 DataTable 中的值.若要创建新的 DataRow,请使用 DataTable 对象的 NewRow 方法。创建新的 DataRow 之后,请使用 Add 方法将新的 DataRow 添加到 DataRowCollection.

但是为什么不能使用new关键字去创建该实例呢,请看该类的构造函数签名:
// 摘要:
// 初始化 DataRow 的新实例。从生成器中构造行。仅供内部使用。
//
// 参数:
// builder:
// 生成器
protected internal DataRow ( DataRowBuilder builder );

看到没,仅供内部使用.所以请使用 DataTable 对象的 NewRow 方法

可以写的呀,这两句语句是不同的意思的。