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ÅŸ:
Nasıl jenerik T türü bir sınıf örneği ...
MVC4 veri Türü.Tarih Chrome't ekr...
Bir için uygun bir adlandırma kuralı ....
Hata :İçerik-Türü Access-Control-Allow...
Java Jenerik: Jenerik türü dönüş türü ...