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