2013-02-21 14 views
7

Dare il codice di esempio qui sotto, qualcuno può spiegare perché la prima chiamata typeof() funziona correttamente ma il secondo non riesce? Non importa se sono classi o interfacce, fallisce in entrambi i modi.Impossibile ottenere il tipo di un'interfaccia/classe che utilizza più di un tipo generico?

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 
} 

risposta

9

È necessario far sapere al compilatore che si sta cercando il tipo generico con due argomenti generici. Aggiungi una virgola tra le parentesi angolari:

var typeTwo = typeof(ITestMany<,>); 
+2

DOH! Ok, c'è il mio momento di Homer Simpson del giorno. Grazie mille per la rapida risposta !! Appena la finestra obbligatoria di 15 minuti si chiuderà, contrassegnerò questa come risposta. –

+0

Nessun problema :) Tutti noi otteniamo quei momenti – TheEvilPenguin

Problemi correlati