Shu*_*oUk 73
是的,你不能让他们成为顶级课程,他们必须是内部课程
public class Outer
{
protected class Foo
{
}
}
Run Code Online (Sandbox Code Playgroud)
这很好,这意味着允许查看Foo的唯一类是Outer的子类
class X
{
// 'Outer.Foo' is inaccessible due to its protection level
private void Flibble(Outer.Foo foo)
{
}
}
class X : Outer
{
// fine
private void Flibble(Outer.Foo foo)
{
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,您不能在c#中将任何外部类声明为private,protected(或protected internal),因为外部级别的访问修饰符定义了与其他程序集相关的可见性.仅在装配体内(或通过InternalsVisibleTo向朋友)或在装配体外部特别可见.
因此,虽然这里使用公共/内部标识符来保持一致性,但IL中的状态只是"公共"或"非公共"(如Reflection.Emit标记所示)
| 归档时间: |
|
| 查看次数: |
30848 次 |
| 最近记录: |