2012-03-29 12 views
6

javaでは、ジェネリック型の型パラメータをバインドすることができます。それは次のように行うことができますので、C#でバインドされたジェネリック型パラメータを定義する

class A<T extends B>{ 
... 
} 

、Aのこのジェネリッククラスの型パラメータがBやC#は、同様の機能を持っている場合、私は疑問に思うB.

のサブクラスでなければなりません。誰かが私に知らせてくれればと感謝します。

おかげで、

+3

'クラスここで、T:B {...}'私は思うここでどのように説明する記事です。それはしばらくありました。 – asawyer

答えて

16

C#で同じである:

class A<T> where T : B 
{ 

} 

また、一般的に制約の偉大な概要については"Constraints on Type Parameters"(MSDN)を参照してください。

+0

私が鉱山を終えている間、数秒で私を殴ります.MSDNのリンクに+1してください。 –

9

非常によく似:

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 
3

次のことができます。

class A<T> where T: B 
{ 
    // ... 
} 
関連する問題