2

誰でも違いを教えてもらえますか

public T Get<T>(int id)

public T Get(int id)
4

3 に答える 3

4

違いは、これが 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);
  }
}
于 2012-06-25T11:42:34.557 に答える
0

コードでジェネリックを使用する前に、ジェネリックについて読んでください。

于 2012-06-25T11:42:02.283 に答える