どうしてこれなの?いくつかの拡張メソッドをロックダウンして、自分のクラスの 1 つだけで使用できるようにできると本当に便利だと思います。特定の拡張メソッドをどこでも利用できるようにしたくありません...そして、それらは通常の静的メソッドよりもはるかに見栄えがします:P
明確にするために:
これらの拡張メソッドが必要な理由は、DataGridView を持つ Form を拡張しているためです。そして、私は次のような行に非常にうんざりしています:
foreach(var row in grid.Rows.OfType<DataGridViewRow>().Where(r => (bool) r.Cells[checkBoxColumn.Index].Value))
foreach(var row in grid.SelectedRows.OfType<DataGridViewRow>().Where(r => (bool) r.Cells[checkBoxColumn.Index].Value))
私ができるように拡張メソッドが欲しい
foreach(var row in grid.Rows.CheckedRows())
foreach(var row in grid.SelectedRows.CheckedRows())
つまり、この拡張メソッドは、このクラスの外ではまったく役に立ちません。しかし、それはコードをずっときれいにします。もちろん、通常のメソッドも作成できます。これは不可能だったので、最終的にそれを行いました。
とにかく、拡張メソッドを作成して使用できる場所にこのような制限を設けることを選択した理由について、誰かが適切な議論を持っているかどうかを知りたいと思っていました. 静的クラスになければならないのは完全に理にかなっています。ネストされた静的クラスに入れることはできません...少なくとも私には...