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

受保护的内部成员和内部受保护的成员之间有区别吗?

4

4 回答 4

7

protected internalinternal protected 会员有区别吗?

它们之间没有区别。

protected internal表示protectedOR internal

internal protected表示internalOR protected

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

两者中,protected internal常用。MSDN 页面上没有关于 Access Modifiersinternal protected的参考。

另请查看 Phil Haack 的博客文章What Does Protected Internal Mean?

于 2013-02-17T23:56:31.647 回答
2

不,没有区别。您可以按照您想要的任何顺序声明它们。就像您可以static在访问修饰符之前或之后声明一样。

唯一真正的区别应该是您和您的团队做出的决定。通常,您会希望坚持一种风格以避免混淆或假设,或者至少在阅读时使事情保持一致。

编辑:虽然,现在我想起来了,我不记得"internal protected"经常看到。在访问修饰符的 MSDN 页面上,它确实将其列为"protected internal",因此请坚持使用它,因为它可能被认为是“更标准”。

于 2013-02-17T23:55:16.160 回答
1

不,那里没有。

两种变体都定义了一个可以从同一个程序集和后代类访问的成员。

于 2013-02-17T23:56:29.490 回答
1

这是一个逻辑“OR”=> Internal 的按位运算:来自同一个程序集。protected :来自派生类。“受保护和内部”是没有意义的:-)

于 2013-02-18T00:51:52.820 回答