SORU
16 Kasım 2008, Pazar


Neden C# korusun genel öznitelik türleri?

Bu derleme zamanı özel durumuna neden olur:

public sealed class ValidatesAttribute<T> : Attribute
{

}

[Validates<string>]
public static class StringValidation
{

}

C farkındayım# genel öznitelikleri desteklemiyor. Ancak, çok Googling sonra, nedenini bulmak için görünmüyor olabilir.

Herkes genel türleri Attribute kaynaklanıyor olamaz neden biliyor mu? Herhangi bir teori var mı?

CEVAP
16 Kasım 2008, Pazar


Evet, Kullanılabilir, ama ben değilim neden cevap verememolabilirCLİ bir sorun değil emin olun. CLİ spec bahsetmemiş (görebildiğim kadarıyla) ve IL doğrudan kullanırsanız, genel bir nitelik oluşturabilirsiniz. Bunu yasaklayan# 3 C spec bölümü - bölüm 10.1.4 "taban Sınıf belirtimi" herhangi bir gerekçe vermez.

Açıklamalı ECMA C# 2 spec yasak bir örnek sağlar, ancak herhangi bir yararlı bilgi de vermiyor.

# 3 açıklamalı C spec kopyamın yarın gelmesi lazım... eğer herhangi bir daha fazla bilgi verirse görüşürüz. Her neyse, kesinlikle dil bir karardan ziyade bir çalışma zamanı.

EDİT: Eric Lippert gelen Cevap () başka sözcüklerle ifade: özel bir sebebi yok, çok değer katmıyor olan bir dava için her iki dil ve derleyici karmaşıklığı önlemek için hariç.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FILIPeeeK

    FILIPeeeK

    22 Mayıs 2006
  • jedimasterkyle

    jedimasterky

    11 ŞUBAT 2006
  • SlimaksClass

    SlimaksClass

    15 Kasım 2010