2

これは、私が継承したいくつかの新しいコードでよく見られます。

DataRow row = Method.dtContainer.NewRow();

ただし、行がテーブルに追加されたり、その後使用されたりすることはありません。ReSharperは、灰色で安全に削除できることを示しています。ただし、行全体を削除する必要がありますか、それとも変数の割り当てだけを削除する必要がありますか?別の言い方をすれば、NewRowを呼び出すと、テーブルに対して何かが行われるのでしょうか、それとも後で追加できる新しいオブジェクトが返されるだけDataTableでしょうか。確認しましたが、リフレクションやゴトなどを介して他の場所にアクセスすることはありません。

ありがとう。

4

2 に答える 2

4

リシャーパーは正しいです。

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 に答える