答案 0 :(得分:9)
此模式实际上允许您引用父类中的具体子类。 例如:
public abstract class Turtle<T> where T : Turtle<T>
{
public abstract T Procreate();
}
public class SeaTurtle : Turtle<SeaTurtle>
{
public override SeaTurtle Procreate()
{
// ...
}
}
对战:
public abstract class Turtle
{
public abstract Turtle Procreate();
}
public class SnappingTurtle : Turtle
{
public override Turtle Procreate()
{
// ...
}
}
在前者中,指出SeaTurtle
的宝宝将是SeaTurtle
。
答案 1 :(得分:-1)
我看不到任何用处。基本上,它与
相同public class Turtle
{
}