受保护的内部[重复]
Posted
技术标签:
【中文标题】受保护的内部[重复]【英文标题】:protected internal [duplicate] 【发布时间】:2012-09-21 14:33:47 【问题描述】:MSDN 上的 C# 语言参考将“受保护的内部”定义为“访问仅限于当前程序集或从包含类派生的类型”。但是从语义的角度来看,“受保护的内部”对我来说听起来像“受保护的和内部的”,这意味着该成员只能被同一程序集中的那些派生类访问。是否有任何具有相同含义的访问修饰符?
【问题讨论】:
这也一直困扰着我。类似的问题:***.com/questions/7000871/… 【参考方案1】:C# 没有任何这样的访问修饰符。
但是,CLR 确实支持它,因为 FamANDAssem 访问级别(protected internal
是 FamORAssem)
【讨论】:
受保护的内部在 C# 中受支持。它是受保护的私有,仅在 C++ 中可用。受保护的内部是 FamORAssem。受保护的私有是 FamANDAssem。 BlackWasp 是正确的。 C# 确实支持受保护的内部。见msdn.microsoft.com/en-us/library/ms173121(v=vs.110).aspx。 @BlackWasp:我就是这么说的。 @BlackWasp:我认为你误解了 OP 的问题。 好点,我重读过,我是个白痴(不是第一次,我肯定也不是最后一次):)【参考方案2】:不,没有这样的修饰符。 Internal
应该足够了,因为您应该能够从同一程序集中的其他类型中知道什么是合法的,什么是不合法的。
【讨论】:
谢谢!但我想要达到的是,不可能以这样一种方式定义一个成员,即它只能被派生类和在同一个程序集中访问。尽管我现在想不出这样一个访问修饰符会派上用场的场景,但很高兴知道没有这样的修饰符可以让程序员说,这个成员是'既受保护又是内部的' @adfs: 能够将方法声明为internal
和 protected
将比internal
更好,仅在方法应带参数的情况下protected
嵌套类类型,特别是如果该受保护类具有内部类型的成员。以上是关于受保护的内部[重复]的主要内容,如果未能解决你的问题,请参考以下文章