Is this a bug in the Microsoft C# compiler, or does the syntax serve a purpose that I'm not aware of?
class P1
{
class P2 : P1
{
class P3 : P2
{
void Foo()
{
P3 p3 = this as P2.P3;
P2 p2 = this as P3.P2; // ?!?
}
};
};
};
edit: I should mention that it compiles just fine in VS2010.