2

次の方法を想像してください

public void SomeMethod<T>(T param)
    where T: List<T2>
{
}

それは動作しません:

エラー 16 型または名前空間名 'T2' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

明確に意図したことを達成するにはどうすればよいですか?

4

2 に答える 2

9

In order to do this, you need to specify an additional generic parameter

public void SomeMethod<T1,T2>(T1 param)
  where T1 : List<T2>
{
}
于 2010-01-05T19:28:28.293 に答える
3

受け入れられた解決策に対する副次的な回答として、T は明示的に T2 に関連付けられているのに、なぜ T が存在するのでしょうか?

public void SomeMethod<T2>(List<T2> listParam) 
{
}
于 2010-01-05T19:56:13.407 に答える