विशेषताओं का उपयोग मेटाडेटा जोड़ने के लिए किया जाता है, जैसे कि कंपाइलर निर्देश और अन्य जानकारी जैसे टिप्पणी, विवरण, विधियाँ, और किसी प्रोग्राम में कक्षाएं।
नेट फ्रेमवर्क कस्टम विशेषताओं के निर्माण की अनुमति देता है जिसका उपयोग घोषणात्मक जानकारी को स्टोर करने के लिए किया जा सकता है और रन-टाइम पर पुनर्प्राप्त किया जा सकता है।
एक नई कस्टम विशेषता System.Attribute वर्ग से ली गई है।
//a custom attribute BugFix to be assigned to a class and its members [AttributeUsage( AttributeTargets.Class | AttributeTargets.Constructor | AttributeTargets.Field | AttributeTargets.Method | AttributeTargets.Property, AllowMultiple = true)] public class DeBugInfo : System.Attribute
आइए हम DeBugInfo नामक एक कस्टम विशेषता का निर्माण करें, जो किसी भी प्रोग्राम को डीबग करके प्राप्त जानकारी को संग्रहीत करता है।
पहली तीन सूचनाओं को संग्रहीत करने के लिए DeBugInfo वर्ग में तीन निजी गुण हैं और संदेश को संग्रहीत करने के लिए एक सार्वजनिक संपत्ति है। इसलिए बग नंबर, डेवलपर का नाम और समीक्षा की तारीख DeBugInfo वर्ग के स्थितीय पैरामीटर हैं और संदेश एक वैकल्पिक या नामित पैरामीटर है।
उदाहरण
आइए देखें कि कैसे -
//a custom attribute BugFix to be assigned to a class and its members [AttributeUsage( AttributeTargets.Class | AttributeTargets.Constructor | AttributeTargets.Field | AttributeTargets.Method | AttributeTargets.Property, AllowMultiple = true)] public class DeBugInfo : System.Attribute { private int bugNo; private string developer; private string lastReview; public string message; public DeBugInfo(int bg, string dev, string d) { this.bugNo = bg; this.developer = dev; this.lastReview = d; } public int BugNo { get { return bugNo; } } public string Developer { get { return developer; } } public string LastReview { get { return lastReview; } } public string Message { get { return message; } set { message = value; } } }