2

我在继承的一些新代码中看到了很多:

DataRow row = Method.dtContainer.NewRow();

但是随后行永远不会添加到表中,甚至在此之后也不会使用。ReSharper 将其显示为灰色且可以安全删除。但是,我应该删除整行还是只删除变量分配?换句话说,调用 NewRow 是否对表做任何事情,或者它只是返回一个新对象,然后可以稍后将其添加到DataTable? 我已经检查过了,它不能通过反射、goto 等在其他任何地方访问。

谢谢。

4

2 回答 2

4

Resharper 是对的。

NewRow()只返回一个具有DataTable实例结构(模式)的新行。

通常,新行会填充数据并添加到 中DataTable,如下所示:

dataTable.Rows.Add(newRow);

如果不以任何方式使用它,则删除该行是安全的。

于 2012-10-13T19:23:11.680 回答
1

尝试运行此代码:

    var table = new DataTable();

    while(true)
    {
        var row = table.NewRow();
    }

如果 Resharper 是正确的,它就不会抛出 OutOfMemoryException!

于 2016-04-26T19:03:27.957 回答