public class TestClass
{
protected internal int FieldA;
internal protected int FieldB;
}
受保护的内部成员和内部受保护成员之间是否存在差异?
答案 0 :(得分:7)
protected internal
和internal protected
之间是否存在差异 成员?
它们之间没有区别。
protected internal
表示protected
或internal
。
internal protected
表示internal
或protected
。
可以通过程序集中的任何代码访问类型或成员 它在另一个派生类中声明为或 部件。来自另一个程序集的访问必须在一个类中进行 声明派生自受保护的类 内部元素被声明,它必须通过一个 派生类类型的实例。
在这两者中,protected internal
是常用的。 MSDN page about Access Modifiers 上没有internal protected
的引用。
另请查看Phil Haack的博文 What Does Protected Internal Mean?
答案 1 :(得分:2)
不,没有区别。您可以按任何顺序声明它们。就像您可以在访问修饰符之前或之后声明static
一样。
唯一真正的区别应该是你和你的团队决定的。通常,您会希望坚持一个样式以避免混淆或假设,或至少在阅读时使事情保持一致。
编辑:虽然现在我想到了,但我不记得经常看到"internal protected"
。在MSDN page for access modifiers上,它会将其列为"protected internal"
,因此可能会坚持使用它,因为它可能被视为“更标准”。
答案 2 :(得分:1)
不,没有。
两种变体都定义了一个可以从同一个程序集和后代类访问的成员。
答案 3 :(得分:1)
这是一个按位运算,逻辑“OR”=>内部:来自同一个组件。 protected:来自派生类。 “受保护的内部”是没有意义的: - )