次のスライドオブジェクトのリストがあります。オブジェクトの 'type' varの値に基づいて、リスト内のSlideオブジェクトをアップキャストする必要があります。出来ますか?c#オブジェクトをダウンキャストする方法
foreach(Slide slide in slidePack.slides)
{
if(slide.type == SlideType.SECTION_MARKER)
{
//upcast Slide to Section
}
}
Section
はSlide
を拡張し、1つの以上のパラメータを追加します。
私にダウンキャストのような音。とにかく、これを行うには危険です(または設計上の欠陥)。もっと特殊なタイプにダウンキャストすることで、オブジェクトから処理できるよりも多くを期待しています。あなたがダウンキャストの必要性を感じる場合は、インターフェイスの使用を検討してください。 –
これらの状況ではインターフェイスが有用であるとのことで合意しましたが、「決してダウンキャストしない」とは言わないと思います。常に設計上の欠陥ではなく、必ずしも危険なものではありません。 – Allan