2012-02-02 9 views
13

मैं (.NET 4.0 ढांचे का उपयोग) जब सी # कोड देख निम्न सिंटैक्स दिखाई दे रहा है:स्क्वायर ब्रैकेट सिंटेक्स से ऊपर संपत्ति घोषणा

[XmlIgnore, Bindable(false)] 
    public virtual FieldBase Field {get;set;} 

संपत्ति हैडर से ऊपर वर्ग कोष्ठक का उद्देश्य क्या है?

+0

क्यों -1? कोई औचित्य नहीं – user559142

उत्तर

18

ये attributes हैं, उन्हें आपके कोड-बेस के तत्वों पर लागू किया जा सकता है और ऐसा करने में उस चीज़ के लिए मेटाडेटा लागू होता है - जैसे वर्णनात्मक घोषणाएं। इन चीजों में कई गुण हो सकते हैं। .NET ढांचे द्वारा 'बिल्ट-इन' विशेषताओं का एक गुच्छा खुलासा होता है, फिर भी आप अपना खुद का परिभाषित कर सकते हैं।

विशेषताओं वाले प्रकार वास्तव में SuchAThingAttribute के पूर्णतः योग्य नाम के साथ परिभाषित किए जाते हैं, जबकि लागू होने पर आपको केवल Attribute नाम निर्दिष्ट करने की आवश्यकता होती है जो SuchAThing बन जाती है। और उन्हें System.Attribute (कम से कम अनुपालन करने के लिए) से प्राप्त होना चाहिए।

एक विशेषता में 'सेटिंग्स' हो सकती है, यानी, आप निर्दिष्ट कर सकते हैं (जब आप स्वयं लिखते हैं) किस प्रकार के तत्व गुण लागू होते हैं, और क्या किसी तत्व में इस प्रकार की विशेषता में से एक से अधिक हो सकता है या नहीं , और इसी तरह।

विशेषता के मेटाडेटा को बाद में Reflection और GetCustomAttribute-तरीकों के तरीकों का उपयोग करने पर मिल सकता है। लिंक here और here ऐसा करने के उदाहरण दिखाएं।

4

जो आप देख रहे हैं वह attribute है। स्क्वायर ब्रैकेट किसी दिए गए सदस्य को किसी विशेषता के आवेदन को निर्दिष्ट करने के लिए आवश्यक वाक्यविन्यास है, इस मामले में एक संपत्ति एक्सेसर, लेकिन विशेषताओं को कक्षाओं आदि पर भी लागू किया जा सकता है।

संबंधित मुद्दे