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

  • bmarian22

    bmarian22

    22 Aralık 2007
  • BMG Rentals Property Management

    BMG Rentals

    23 Mayıs 2011
  • The Slow Mo Guys

    The Slow Mo

    15 AĞUSTOS 2010