で、他のサブクラスのオブジェクトに1つのサブクラスを型キャストすることができますが、以下のキャスト:私は私が入力したいのC#
Class A
{
}
Class B : A
{
}
Class C: A
{
}
Class D{
B b = new b();
C c = (C) b;
}
を、私は、クラスB
で、他のサブクラスのオブジェクトに1つのサブクラスを型キャストすることができますが、以下のキャスト:私は私が入力したいのC#
Class A
{
}
Class B : A
{
}
Class C: A
{
}
Class D{
B b = new b();
C c = (C) b;
}
を、私は、クラスB
にキャストクラスCを入力することができません、それができませんどのように提案して下さいBはではなくであるため、このキャストは失敗する必要があります。 1つの回避策は、カスタムの明示的変換演算子を実装することですが、それ以外の方法はありません - 同じ継承ツリーでより具体的な型(ダウンキャスト)または基本クラス(アップキャスト)にのみキャストできます。
できません。 BをAにキャストすることができます。
これは単に不可能です。そのような変換はできません。
実際には同じ基本クラスですが、はと同じではありません。たとえば、これを見てください。
Triangle
はShape
と Rectangle
あるShape
である。しかし、彼らは異なっているので、あなたは、Rectangle
にTriangle
を変換することはできません。
いいえ、できません。あるクラスから別のクラスにプロパティをコピーする場合は、AutoMapperと考えられます。
できません。クラスCとクラスBはクラス階層内では関連していません。
これはあまり似ていません。これを使って、2人の息子がお互いに母親であると言うこともできます。 – ChaosPandion
良い点!私はそれを "小さな" – Jeb
Animal
{
}
Giraffe : Animal
{
}
Shark : Animal
{
}
あなたの質問はどのようにキリンをサメに変えますか?残念ながら、それはできません。
あなたはこれを行うべきだと思いますか? – jeroenh