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

  • Absolute Zero(Programming Tutorials)

    Absolute Zer

    22 Kasım 2012
  • androidandme

    androidandme

    10 Mart 2009
  • Distractify

    Distractify

    1 Aralık 2011