这是 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/