4

以下のように、静的メソッドを持つ汎用クラス Program があります。

class Program
{
    public static void Main()
    {
        Console.WriteLine("HI from program");
        Console.ReadLine();
    }
}

以下のように、ジェネリック クラス Program1 内の静的 Main メソッドにアクセスしようとすると、次のようになります。

class Program1<T> : Program where T : Program
{
    public static void check()
    {
        T.Main();                
    }
}

エラーが発生します:

'T' は 'type parameter' であり、指定されたコンテキストでは無効です

しかし、私が使用する場合

public static void check()
{
    Program.Main();                
}

すべてが正常に動作します。私が犯しているかもしれない間違いを説明してもらえますか?

4

2 に答える 2

2

Generic Typeの条件がタイプ「Program」自体である場合、「Program1」に「Program」を拡張させたくない場合があると思います。

于 2013-05-02T10:56:22.170 に答える