非ジェネリッククラス内のジェネリックメソッド 質問する

非ジェネリッククラス内のジェネリックメソッド 質問する

.net Framework 4.0を使用しています。
非ジェネリッククラス内にジェネリックメソッドを作成したいのですが、コンパイル時にエラーが発生します。

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

  public class BlIAllClass
    {
        public static List<T> xyz()
        {
            List<T> cc = new List<T>();
            return cc;
        }
    }

また、次のような質問もありますジョン・ポール・ジョーンズ 非ジェネリッククラスのジェネリックメソッド
そこで彼は、非ジェネリッククラス内にジェネリックメソッドを作成できると述べています。
では、私のコードの何が間違っているのでしょうか。
フレームワークのバージョンに関連する問題ですか、それとも何かが欠けているのでしょうか。

ベストアンサー1

あなたのメソッドはジェネリックではありません。一般的な方法は次のように宣言されるメソッドです。型パラメータ

方法を次のように変更します。

public static List<T> xyz<T>()
{
    List<T> cc = new List<T>();
    return cc;
}

また、メソッドの実装を次のように変更することもできます。return new List<T>();

おすすめ記事