2013-02-21 11 views
7

Aşağıdaki örnek kodu verin, kimse ilk typeof() aramasının neden başarılı çalıştığını açıklayabilir, ancak ikinci başarısız olur? Sınıflar ya da arayüzler olsun fark etmez, iki şekilde başarısız olur.Birden çok genel tür kullanan bir arabirim/sınıf türü alınamıyor mu?

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 
} 

cevap

9

Derleyiciye, iki genel argümanı olan genel türü aradığınızı bilmeniz gerekir. Köşeli parantez arasında virgül ekleyin:

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

DOH! Tamam, günün Homer Simpson anlarım var. Hızlı yanıt için çok teşekkürler! 15min zorunlu pencere kapanır gibi, ben bunu cevap olarak işaretleyeceğim. –

+0

Endişelenmeyin :) Hepimiz o anları yakalarız – TheEvilPenguin

İlgili konular