C# 允许反向引用嵌套类吗?

标签 c# .net nested-class

这是 Microsoft C# 编译器中的错误,还是该语法有我不知道的用途?

class P1
{
    class P2 : P1
    {
        class P3 : P2
        {
            void Foo()
            {
                P3 p3 = this as P2.P3;
                P2 p2 = this as P3.P2;  // ?!?
            }
        };
    };
};

编辑:我应该提到它在 VS2010 中编译得很好。

最佳答案

这是有效的,因为您的嵌套类继承自它们嵌套的类。

P3是一个P2,P2又是一个P1,P1又嵌套了一个P2。

关于C# 允许反向引用嵌套类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4341166/

相关文章:

c# - "Pop up"表单禁止访问其后面的表单

.net - 在 .Net Core 3.0 项目中引用 .Net Framework 4.8 类库

c# - 如何在C#中逐行读取?

c# - 无法使用 Mono Soft Debugger 远程调试,因为 'debugger-agent: DWP handshake failed' 错误

c# - 为什么一个类不能在 C# 中扩展它自己的嵌套类?

c++ - 为什么 GCC 允许从私有(private)嵌套类继承?

c# - 为什么 c# 编译器在某些情况下会发出 newobj/stobj 而不是 'call instance .ctor' 来进行结构初始化

c# - 如何获取和设置当前运行空间中的变量? (基于 cmdlet 的模块)

c# - Sqlite "No such table"保存对象时

c++ - 使用自己的结构在头类中定义函数?