我对嵌套类的使用有一些争论。情况是一个类名在两个或多个地方重复是有意义的,虽然每个不同实例之间有适度的相似性,但它们通常是不同的。嵌套类通常(如果有的话)不需要超出其父类的范围。
那么,与其只是想出三个不同的类名,这对我来说似乎更有意义。
class A {
class B {
}
class M {
class B {
}
}
class Q {
class B {
}
}
明显的问题不是功能性,而是一致性/重复性。我想知道其他开发人员是否曾经为同样的事情而苦苦挣扎,以及他们的一些意见是什么。
最佳答案
.net Design Guide advises against it :
- “不要使用公共(public)嵌套类型作为逻辑分组结构;为此使用命名空间。”
- “避免公开暴露嵌套类型。唯一的异常(exception)是在极少数情况下需要声明嵌套类型的变量,例如子类化或其他高级自定义情况。”
这也是基类库所做的:在 System.Web.UI
中命名空间,你有 DataGridItem
, DataListItem
, ListViewItem
, MenuItem
, RepeaterItem
等。所有这些都可以称为 Item
并嵌套在 DataGrid
中, DataList
等。但是,这将违反上述两个原则。
关于C#,逻辑结构可以使用嵌套类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7402849/