【发布时间】:2016-02-19 13:20:24
【问题描述】:
曾几何时,我不得不修改一些外部开源项目以满足内部项目的要求。我已经通过继承完成了它,我认为它是我项目中库的良好设计和干净的解决方案。然而,像this 这样的一些项目有它们的内部类,因此基于继承的扩展是不可能的(这些类只在同一个程序集中可见)。
Here微软声明:
具有访问修饰符 protected internal 的类型或成员可以是 从当前程序集或派生自的类型访问 包含类。
将类定义为库内部的类是一种不好的做法吗?它们是否应该是 protected internal 才能进行扩展?
【问题讨论】:
-
“将类定义为库内部的类是一种不好的做法吗?”不,还好。并非所有事情都必须在项目之外进行更改。内部类型通常是实现细节,可以在未来的版本中更改,而不会对公共 API 产生任何影响。
-
不能将非嵌套类型定义为
protected internal
标签: c# architecture