我听说有些人反对使用internal
修饰符隐藏来自声明它们的程序集之外的类和成员,因为它违背了OOP的主要原则。这是真的吗?
答案 0 :(得分:3)
这是真的吗?
不,这不是真的。内部可见性修饰符有其用途。有些类不希望在其包含的程序集之外使用,但仍然在程序集内部是公共的。例如,如果您正在设计API,则可能存在您不希望向API的使用者公开的类。
答案 1 :(得分:0)
人们可以自由发表意见。我不确定“内部”如何击败OOP的主要原则......也许一个链接可以帮助我评估他们的立场。
我使用internal来隐藏我不希望程序集之外的任何人使用的类型。在我看来,这是亲OOP
e.g。我重构了两种公共类型中的一些常用代码;这种新类型最初是内部的。除非一些客户/测试驱使我提高可见性。此外,我有时使用它作为临时作弊,以避免为某些类型编写测试(所有公共类型应该有测试)。它对我有好处。
答案 2 :(得分:0)
内部关键字允许开发人员隐藏程序集的成员(如果它由另一个程序集使用)。例如,在.NET框架中,有许多内部类型,这意味着它们仅在内部程序集使用时需要,并且在库外部不可见。这是装配级别的封装。