2012-01-17 17 views
8

'u mahvettim Başlıktaki kelime sorusunu kullanmaya çalıştığım için haykırıldım, işte bu da buydu. Her halükarda, bu, parametre türleri hakkında tamamen akademik bir sorudur.Bir parametre türü, Func <shui>

Tamam, işte benim elde ettiğim şey bu. Bana açık ve net

using System; 
namespace TypeParamTest 
{ 
    internal class Program 
    { 
     private static void Main(string[] args) 
     { 
      PrintType(1, new object()); 
      Console.ReadKey(); 
     } 
     static void PrintType<T, Ttwo>(T first, Ttwo second) 
     { 
      Console.WriteLine(typeof(T) + " : " + typeof(Ttwo)); 
     } 
    } 
} 

(Zeki okuyucular sayfa C# in Depth 249 üzerinde bulunan bir örnek basit bir uzantısı olarak bu tanıyacaktır). Neler olduğunu anlarım, derleyici bazı türlerin (T ve Ttwo için tanımlanacak) olduğunu söylüyor. Anlayamadığım şey, sayfa 65'de neden sadece bir tür parametresi olduğunu gösteriyor.

List<TOutput> ConvertAll<TOutput>(Converter<T, TOutput> conv); 

nasıl derleyici yaklaşık T bu durumda biliyor?

+2

Bu yöntemin, T. – ChaosPandion

+2

+1 İyi bir soru, düz başlık tanımlayan genel bir sınıf içinde yer aldığını düşünüyorum. – MPelletier

cevap

9

Kesin cevap vermek için yeterli bilgiye sahip değiliz. Belki de çevreleyen sınıfta T tanımlanmış mı? Bu List<T> 'ın ConvertAll yöntemin bir örneği ise

public class SomeClass<T> { 
    List<TOutput> ConvertAll<TOutput>(Converter<T, TOutput> conv); 
} 

, sonra benim önerim yukarıdaki durumdur.

+0

Ah, hepiniz beni yendiniz! Bu kıvılcım beynimin içinde kayboldu. – Kenn

İlgili konular