我在一些我继承的新代码中看到了很多:
DataRow row = Method.dtContainer.NewRow();
但是,行永远不会添加到表中,甚至在此之后使用。 ReSharper将其显示为灰色且可安全移除。但是,我应该删除整行还是仅删除变量?换句话说,调用NewRow会对表执行任何操作,还是只返回一个新对象,然后可以将其添加到DataTable
?我已经检查过,并且不会通过反射,里程等来访问它。
感谢。
答案 0 :(得分:4)
Resharper是对的。
NewRow()
只返回一个具有DataTable
实例结构(模式)的新行。
通常,新行会填充数据并添加到DataTable
,如下所示:
dataTable.Rows.Add(newRow);
如果没有以任何方式使用它,删除该行是安全的。
答案 1 :(得分:1)
尝试运行此代码:
var table = new DataTable();
while(true)
{
var row = table.NewRow();
}
如果Resharper是正确的,它不会抛出OutOfMemoryException!