gpt4 book ai didi

c# - 为什么我的公共(public)类不能扩展内部类?

转载 作者:IT王子 更新时间:2023-10-29 03:55:13 25 4
gpt4 key购买 nike

我真的不明白。

如果基类是抽象的并且仅用于为程序集中定义的公共(public)子类提供通用功能,为什么不应该将其声明为内部的?

我不希望抽象类对程序集外部的代码可见。我不想让外部代码知道它。

最佳答案

更新:这个问题是 the subject of my blog on November 13th of 2012 .有关此问题的更多想法,请参阅它。感谢您提出很好的问题!


你是对的;它不一定是那样的。其他 OO 语言允许“私有(private)继承”,因此 D 继承自 B 的事实只能由能够看到 B 的代码利用。

这是最初的 C# 设计者的设计决定。不幸的是,我现在不在办公 table 前——这个长周末我要休几天假——所以我面前没有 1999 年的语言设计笔记。如果我回来后想到它,我会浏览它们,看看是否有理由做出这个决定。

我个人的看法是应该用继承来表示“是一种”的关系;也就是说,继承应该表示用语言建模的域的语义。我尽量避免将继承用作代码共享机制 的情况。正如其他人所提到的,如果您想要表示的是“此类与其他类共享实现机制”,那么最好选择组合而不是继承。

关于c# - 为什么我的公共(public)类不能扩展内部类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3626958/

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