C# Dilinde Öznitelik Kavramı
Öznitelik nedir ?
İngilizce karşılığı ‘Attributes’ olan öznitelikler, başlıca olarak sınıf, tür, fonksiyon gibi programlama ögelerine açıklama eklemek için ve bu açıklamaları bildirim olarak görüntülemenize olanak tanır. Tek görevi bununla sınırlı kalmamakla birlikte belirtildiği ögenin çalışma alanını kısıtlayabiliyor. Ayrıca belirtilen ögede ‘Değişken’ ile de çalışabiliyorsunuz.
Nasıl oluşturulur ?
Basit bir ‘Sınıf’ tanımlaması yaparak başlayabiliriz. Ancak isminin sonuna Attribute : Attribute ekliyoruz ki öznitelik tanımını yapabilelim. (Örnek olarak public string AttExAttribute : Attribute)
Değişkenler ile çalışabileceğimizden bahsetmiştim. Şimdi bir Public String
tanımlamakla başlayalım. Ardından tanımladığımız AttExAttribute ögeyi Public özelliği altında oluşturduğumuz String ile çalışacağımızı belirtelim.
Oluşturulan özniteliklere hedef ve çoklu kullanım eklemek
Hedefler, Öznitelik’leri ‘sınırlamak’ veya ‘belirli bir ögeye özgü kılma’ gibi özellikler kullanmamızı sağlar.
Çoklu Kullanım, bir sorguyu yazdıktan sonra başka bir sorgu ile çalışmamızı mümkün kılar. Bu kısma örnekler ile değineceğim.
İlk olarak ‘[]’ (Ctrl + Alt + 8 ve Ctrl + Alt + 9) kutucuğumuzu ekleyelim. İçine AttributeUsage(AttributeTargets.Class, AllowMultiple = true) metoduyla birlikte hedef gösterimimizi class olarak, çoklu kullanım özelliğimizi true olarak tanımlattık. Şimdi kullanacağımız örneğimize geçelim.
Student adındaki sınıfımız ile birlikte Student_Affairs sınıfımızı şekildeki gibi oluşturalım. Student_Affairs sınıfındaki Obsolete özniteliğini tanıtmak istiyorum; geliştiricilere dinamik olarak bildirim bırakmak içindir. Bir sonraki aşamada nasıl kullandığımızı anlatacağım.
Main bloğuna şekildeki kodları ekleyelim, Student_Affairs.Reg(student); yazan satıra dikkat edelim :
Obsolete özniteliği bu şekilde kullanılır. Şimdi biraz beyin fırtınası yapalım!
Öznitelikleri hangi durumlarda kullanabiliriz ?
Oluşturduğunuz fonksiyonun projenin önemli bir bileşeni olduğunu not olarak bırakabilirsiniz. AttEx özniteliğinin içerisine veritabanı bağlantısı kurarak ExString değişkeni ile birlikte sorgu yapıp bildiriminizi geri döndürebilirsiniz…
Bu yazıda Attributes olayının temeli ve birtakım fikir çerçevesi içerisinde nasıl kullanılacağını gördük. Siz de bu olayın detaylarını öğrenip yeni kullanımlarını keşfetmek istiyorsanız ek bilgilendirmelere ve projenin kaynak kodlarına da ulaşabilirsiniz.