2009-12-02 10 views
14

Sınıfı, bu CodeProject article VB.NET'te ve .NET Framework 2.0 ile kullanmaya çalışıyorum.Bir "Func <(Of <(TResult>)>) Simge nasıl" .NET Framework 2.0'da?

Bu satır Private _workerFunction As Func(Of TResult) ve yöntem başlığı Public Sub New(ByVal worker As Func(Of TResult)) hariç derlenmiş gibi görünüyor.

Ben (işlev() ... Of bu yeni delegeler .NET 3.5 desteklenen olduğunu MSDN'deki bulabilirsiniz.

Bunu nasıl Neyse ki .NET 2.0?

cevap

18

çalışmak yazabiliriz, Ben hepsini ilan var Konamiman söylediği gibi

public delegate T Func<T>(); 
17

, sen benim "versions" page günü çok kolayca kendi temsilci türleri bildirebilirsiniz: .NET 2.0 zaten Generics'i destekler, böylece sadece aynı imza ile kendi temsilci oluşturabilirsiniz. Böylece bunları kesip yapıştırabilirsiniz:

public delegate void Action(); 
public delegate void Action<T1, T2>(T1 arg1, T2 arg2); 
public delegate void Action<T1, T2, T3>(T1 arg1, T2 arg2, T3 arg3); 
public delegate void Action<T1, T2, T3, T4>(T1 arg1, T2 arg2, T3 arg3, T4 arg4); 
public delegate TResult Func<TResult>(); 
public delegate TResult Func<T, TResult>(T arg); 
public delegate TResult Func<T1, T2, TResult>(T1 arg1, T2 arg2); 
public delegate TResult Func<T1, T2, T3, TResult>(T1 arg1, T2 arg2, T3 arg3); 
public delegate TResult Func<T1, T2, T3, T4, TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4); 

(Burada, satırın IDE'de kalmasını istemediğiniz için, kaydırma yapmaktan kaçınmadım. Action<T> dolayısıyla onun yokluğu yukarıda, .NET 2.0 parçası olduğunu unutmayın)

+0

Olası yazım hatası:. Eylem dolayısıyla onun yokluğu ... –

+0

@gt, .NET 2 parçasıdır: Evet, ben komutu ters tırnak sopa vermedi etrafında. Sabit, teşekkürler. –

İlgili konular