2013-02-17 136 views
6
public class TestClass 
{ 
    protected internal int FieldA; 
    internal protected int FieldB;  
} 

受保护的内部和内部受检查成员是否有区别?受保护的内部和内部受保护有区别吗?

+5

没有没有。但是,不要陷入没有意识到它意味着受保护||的陷阱internal'。这并不意味着'保护&&内部'。 – 2013-02-17 23:57:17

回答

7

受保护的内部和内部检查 成员是否有区别?

它们之间没有区别。

protected internal表示protectedinternal

internal protected表示internalprotected

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

protected internal commanly used。没有关于internal protected的说明MSDN页面。

还检查了菲尔哈克酷博客文章What Does Protected Internal Mean?

+0

'internal'或'internal'? – 2013-02-17 23:58:48

+0

@SimonWhitehead修好了,谢谢。 – 2013-02-17 23:59:56

2

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

唯一真正的区别应该是你和你的团队所决定的。通常你会想坚持一种风格以避免混淆或假设,或者至少在阅读时保持一致。

编辑:虽然,现在我想起它,我不记得经常看到"internal protected"。在MSDN page for access modifiers,它确实列出它为"protected internal",所以可能坚持,因为它可能被认为是“更标准”。

1

不,没有。

这两个变体都定义了一个成员,该成员可以从相同的程序集和子类中访问。

+0

你的意思是“OR”? – 2013-02-18 01:21:35

+0

在这种特殊情况下,“和”和“或”将具有相同的含义。 – 2013-02-18 03:48:48

1

它与逻辑“或” =>内部按位操作:从同一个组件。受保护:来自派生类。 “保护和内部”是没有意义的:-)