0

我有一个基类 Sport,它有一个属性将返回正确的对象类型,它应该是给定的派生类型(例如,Billiards 扩展了 Sport,并且该属性将返回 BilliardBall 类型)。

有没有比在 Sport 类中使用大的 if 语句更好的方法(如果此对象是 Billiards 实例,则返回 BilliardBall,否则如果...)?

4

1 回答 1

5

你为什么在这里谈论泛型?为什么 Sport 知道所有的运动?

对于初学者,您可以执行以下操作:

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 回答