为什么会这样呢?我希望能够有一些扩展方法只在我的某个类中使用。不想让某些扩展方法随处可用...而且它们看起来比普通的静态方法更好:P。
澄清一下:
我想要这些扩展方法是因为我正在扩展一个窗体,它上面有一个DataGridView。我已经厌倦了像下面这样的代码:
换句话说,这个扩展方法在类外完全没有用处。但是它可以让代码更加简洁。当然也可以创建常规方法,因为这是不可能的。
无论如何,我只是好奇是否有人有一些好的理由来解释为什么要对扩展方法的创建和使用限制。必须在静态类中创建是完全有道理的。但是不能在嵌套的静态类中创建,至少对我来说并不合理。
澄清一下:
我想要这些扩展方法是因为我正在扩展一个窗体,它上面有一个DataGridView。我已经厌倦了像下面这样的代码:
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())
换句话说,这个扩展方法在类外完全没有用处。但是它可以让代码更加简洁。当然也可以创建常规方法,因为这是不可能的。
无论如何,我只是好奇是否有人有一些好的理由来解释为什么要对扩展方法的创建和使用限制。必须在静态类中创建是完全有道理的。但是不能在嵌套的静态类中创建,至少对我来说并不合理。