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

DataRow在定义时是不是只能写成DataRow dr=dt.NewRow();这种形式,而不能直接DataRow dr = new DataRow(); ?

为什么呢?

^_^

这是因为DataRow这个类并没有提供public的构造函数,所以不能直接new DataRow()
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-09-21
DataRow 和 DataColumn 对象是 DataTable 的主要组件。使用 DataRow 对象及其属性和方法检索、评估、插入、删除和更新 DataTable 中的值.若要创建新的 DataRow,请使用 DataTable 对象的 NewRow 方法。创建新的 DataRow 之后,请使用 Add 方法将新的 DataRow 添加到 DataRowCollection.

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

看到没,仅供内部使用.所以请使用 DataTable 对象的 NewRow 方法
第2个回答  推荐于2018-03-03
这样说吧你单纯的DataRow dr = new DataRow(); 谁知道你的dataRow是属于谁的呢,DataRow dr = dt.NewRow()的话就不一样了,都知道datarow是dt里面的一个本回答被提问者和网友采纳
第3个回答  2009-09-21
因为 DataRow 需要有已知的架构,而这个架构,需要从 DATATABLE 中继承
第4个回答  2009-09-21
可以写的呀,这两句语句是不同的意思的。
相似回答