DataTable.NewRow除了返回一行之外还做什么吗?

时间:2012-10-13 19:14:20

标签: c# datatable refactoring

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

DataRow row = Method.dtContainer.NewRow();

但是,行永远不会添加到表中,甚至在此之后使用。 ReSharper将其显示为灰色且可安全移除。但是,我应该删除整行还是仅删除变量?换句话说,调用NewRow会对表执行任何操作,还是只返回一个新对象,然后可以将其添加到DataTable?我已经检查过,并且不会通过反射,里程等来访问它。

感谢。

2 个答案:

答案 0 :(得分:4)

Resharper是对的。

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

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

dataTable.Rows.Add(newRow);

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

答案 1 :(得分:1)

尝试运行此代码:

    var table = new DataTable();

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

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