gpt4 book ai didi

C#,逻辑结构可以使用嵌套类吗?

转载 作者:太空狗 更新时间:2023-10-29 18:19:06 25 4
gpt4 key购买 nike

我对嵌套类的使用有一些争论。情况是一个类名在两个或多个地方重复是有意义的,虽然每个不同实例之间有适度的相似性,但它们通常是不同的。嵌套类通常(如果有的话)不需要超出其父类的范围。

那么,与其只是想出三个不同的类名,这对我来说似乎更有意义。

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com