受保护的内部保护和内部保护之间是否存在差异?

时间:2013-02-17 23:52:47

标签: c# .net internal protected access-modifiers

public class TestClass
{
    protected internal int FieldA;
    internal protected int FieldB;    
}

受保护的内部成员和内部受保护成员之间是否存在差异?

4 个答案:

答案 0 :(得分:7)

  

protected internalinternal protected之间是否存在差异   成员?

它们之间没有区别。

protected internal表示protectedinternal

internal protected表示internalprotected

  

可以通过程序集中的任何代码访问类型或成员   它在另一个派生类中声明为   部件。来自另一个程序集的访问必须在一个类中进行   声明派生自受保护的类   内部元素被声明,它必须通过一个   派生类类型的实例。

在这两者中,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:来自派生类。 “受保护的内部”是没有意义的: - )