javaでは、ジェネリック型の型パラメータをバインドすることができます。それは次のように行うことができますので、C#でバインドされたジェネリック型パラメータを定義する
class A<T extends B>{
...
}
、Aのこのジェネリッククラスの型パラメータがBやC#は、同様の機能を持っている場合、私は疑問に思うB.
のサブクラスでなければなりません。誰かが私に知らせてくれればと感謝します。
おかげで、
javaでは、ジェネリック型の型パラメータをバインドすることができます。それは次のように行うことができますので、C#でバインドされたジェネリック型パラメータを定義する
class A<T extends B>{
...
}
、Aのこのジェネリッククラスの型パラメータがBやC#は、同様の機能を持っている場合、私は疑問に思うB.
のサブクラスでなければなりません。誰かが私に知らせてくれればと感謝します。
おかげで、
C#で同じである:
class A<T> where T : B
{
}
また、一般的に制約の偉大な概要については"Constraints on Type Parameters"(MSDN)を参照してください。
私が鉱山を終えている間、数秒で私を殴ります.MSDNのリンクに+1してください。 –
非常によく似:
public class A<T> where T : B
{
// ...
}
これは、(Bインターフェイスの場合)Bのサブクラスまたは実装であることTを制約するために使用することができます。また
、あなたは参照型、値型、またはデフォルトコンストラクタを必要とするようにTを制約することができます:もちろん
where T : class // T must be a reference type
where T : struct // T must be a value type
where T : new() // T must have a default constructor
次のことができます。
class A<T> where T: B
{
// ...
}
はい、あなたが行うことができますこれは型制約と呼ばれます。
'クラスここで、T:B {...}'私は思うここでどのように説明する記事です。それはしばらくありました。 –
asawyer