aşağıdaki genel işlevi var:numaralamalar
public SomeType SomeFunction<T>(T value) where T : System.Enum
{
}
: bu yüzden aşağıdaki çalıştı
public SomeType SomeFunction<T>(T value)
{
}
Ben şimdi sadece Enum
ile çalışmak için bu jenerik işlevi kısıtlamak istiyoruz s
Ama bu sonuçlanmıştır:
hata CS0702: Kısıtlama s olamaz pecial sınıfı 'System.Enum'
Bu tür bir kısıtlamaya izin verilmemesinin nedenini bilen herkes bir merakı ve merakı var mı?
bir istisna atmadan önce bunu biraz daraltabilir Ani'nin bahsettiği dupe'de. Bu C# dilinin bir kısıtlamasıdır, CLR değil (örneğin, F # içinde enum 'ile sınırlamak mümkündür). Kısıtlanmamış Melodi kitaplığı, C# 'nin kendisinde' enum 'kısıtlamalarına izin vermek için bir geçici çözüm sunar: http://code.google.com/p/unconstrained-melody/ – LukeH