this codeの用途はわかりません。このパターンはどんな使い方ですか?このコードはどのような用途ですか?
私が見ることができる何の使用はありません
public class Turtle<T> where T : Turtle<T>
{
}
this codeの用途はわかりません。このパターンはどんな使い方ですか?このコードはどのような用途ですか?
私が見ることができる何の使用はありません
public class Turtle<T> where T : Turtle<T>
{
}
このパターンは、親クラスの具体的なサブクラスを参照することができます。たとえば :対
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
になることを指定します。
コントラバリエーションがサポートされていれば、このようなことは必要ないと思いますか? – shahkalpesh
多くの用途があります。サブクラスのインタフェースを実装することができます。同様に、Javaでは、 'java.lang.Enum'はパターンを使用してサブクラスに' java.lang.Comparable'を実装します。私はC#に何か類似していると確信しています。 –
確かに他の用途もありますが、それらはすべて、そのサブクラスの型を使用する必要のある親クラスに関係しています。インターフェイスの実装に関して、2つの選択肢があります:Tまたはタートルのインターフェイスを実装する
[コードは、後世のためにここで繰り返します]。基本的には同じです
public class Turtle
{
}
そのカメはいっぱいです... – Juliet
これは?私は何かが欠けている必要があります... –
あなたが私に尋ねる場合は、より多くのカメが必要です。 – Corey