0

基本クラスSportがあります。このプロパティには、特定の派生型に必要な適切なタイプのオブジェクトが返されます(たとえば、BilliardsはSportを拡張し、プロパティはBilliardBallタイプを返します)。

Sportクラスに大きなifステートメントを含めるよりも良い方法はありますか(このオブジェクトがBilliardsインスタンスの場合は、BilliardBallを返します。それ以外の場合は...)?

4

1 に答える 1

5

なぜここでジェネリックを話しているのですか?そして、なぜスポーツはそこにあるすべてのスポーツについて知っているのですか?

手始めに、以下のようなことを行うことができます。

public interface IBall
{
}
public class BilliardBall : IBall
{
}
public abstract class Sport
{
    protected abstract IBall Ball { get; }

}
public class Billiards : Sport
{
    protected override IBall Ball
    {
        get { return new BilliardBall(); }
    }
}
于 2012-10-01T18:04:09.733 に答える