我可以在C#中将一个子类类型转换为其他子类对象

vin*_*eel 3 .net c# inheritance

我想在下面输入一个:

Class A
{
}

Class B : A
{
}

Class C: A
{
}
Class D{
B b = new b();
C c = (C) b;
}
Run Code Online (Sandbox Code Playgroud)

请建议如何将类C转换为B类

Bro*_*ass 5

不,那是不可能的,因为B 不是 C,所以这个演员必须失败.一种解决方法是实现自定义显式转换运算符,否则无法实现 - 您只能在同一继承树中转换为更具体的类型(向下转换)或基类(向上转换).