誰でも違いを教えてもらえますか
public T Get<T>(int id)
と
public T Get(int id)
違いは、これが T が以前に定義されていない場合に、最初のタイプの宣言を使用することです。すなわち。
public class MyClass
{
public T Get<T>(int id);
}
T がすでにクラス レベルで定義されている場合は 2 つ目です。すなわち。
public class MyClass<T>
{
public T Get(int id);
}
この場合、最初のタイプの宣言を使用することもできます - これは事実上省略形です。効果に違いはありません。
編集実際、2 番目の宣言では、T がスコープ内にあることのみが必要です。別の例は、次のようにネストされたクラスになります...
public class MyClass<T>
{
public class NestedClass
{
public T Get(int i);
}
}
コードでジェネリックを使用する前に、ジェネリックについて読んでください。