7

typeof()以下のサンプルコードを挙げてください。最初の呼び出しが正常に機能するのに2番目の呼び出しが失敗する理由を誰かが説明できますか?それらがクラスであるかインターフェースであるかは関係ありません。どちらの方法でも失敗します。

interface ITestOne<T1>
{
   T1 MyMethod();
}

interface ITestMany<T1, T2>
{
   T1 MyMethod(T2 myParameter);
}

void Main()
{
    var typeOne = typeof(ITestOne<>); //This line works
    var typeTwo = typeof(ITestMany<>); //Compile error
}
4

1 に答える 1

9

2つのジェネリック引数を持つジェネリック型を探していることをコンパイラに通知する必要があります。山かっこ間にコンマを追加します。

var typeTwo = typeof(ITestMany<,>);
于 2013-02-21T22:43:45.037 に答える