10 EKİM 2008, Cuma
C# Jenerik't kazandı Temsilci Türü Kısıtlamaları izin
Bu C sınıfı tanımlamak mümkündür*. böyle
class GenericCollection<T> : SomeBaseCollection<T> where T : Delegate
Beni hayat için bu son gece elde edemedim .NET 3.5. Kullanmayı denedim
delegate, Delegate, Action<T> and Func<T, T>
Bu bir şekilde kabul edilebilir olması gerekir gibi geliyor bana. Benim kendi EventQueue uygulamaya çalışıyorum.
Sadece bu ilkel yaklaşım aklınızda] ben de yapıyordum.
internal delegate void DWork();
class EventQueue {
private Queue<DWork> eventq;
}
Ama işlevleri farklı türleri için aynı tanımı yeteneği kaybettim.
Düşünceler?
CEVAP
10 EKİM 2008, Cuma
Sınıf genel kısıtlar olarak kullanılamaz - Numaralama başka bir ediliyor.
Delegeler, sen-ebilmek almak en yakın", kontrol etmek için belki de yansıtma (statik oluşturucu örneğin, T . o sınıf": ^em>bir temsilci:
static GenericCollection()
{
if (!typeof(T).IsSubclassOf(typeof(Delegate)))
{
throw new InvalidOperationException(typeof(T).Name " is not a delegate type");
}
}
Bunu Paylaş:
MVC4 veri Türü.Tarih Chrome't ekr...
Nasıl jenerik T türü bir sınıf örneği ...
C# ile jenerik hata " yardım;türü ...
'in elimden nedeni't ne oluş...
Dönüşü olmayan işlev temsilci türü...