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

  • Brandon McCrary

    Brandon McCr

    15 Ocak 2012
  • ecf150king

    ecf150king

    20 Ocak 2006
  • ShoSho

    ShoSho

    20 Ocak 2010