繁体   English   中英

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

[英]can I typecast one subclass to other subclass object in C#

我想在下面输入一个:

Class A
{
}

Class B : A
{
}

Class C: A
{
}
Class D{
B b = new b();
C c = (C) b;
}

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

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

你不能。 你可以把B投到A.

这根本不可能。 你不能这样的转换。

实际上它们具有相同的基类,但它们并不相同。 例如,看看这个。

TriangleShapeRectangleShape

但是你不能将Triangle转换为Rectangle ,因为它们是不同的。

不,你不能。 如果要将属性从一个类复制到另一个类,可以考虑使用AutoMapper

不可能。 类C和B在类层次中不相关。

Animal
{
}

Giraffe : Animal
{
}

Shark : Animal
{
}

你的问题是你如何将长颈鹿变成鲨鱼。 不幸的是,它无法完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM