2009-07-14 10 views
29

क्या बच्चे कक्षाओं में ओवरराइड संस्करणों पर लागू बेस क्लास में एक अमूर्त विधि पर लागू गुण हैं?क्या सी # में विधि गुण शामिल हैं?

मुझे उम्मीद है कि प्रश्न उदाहरण के बिना पर्याप्त स्पष्ट है।

उत्तर

33

यह इस बात पर निर्भर करता है कि विशेषता को कैसे घोषित किया जाता है - AttributeUsageAttribute.Inherited संपत्ति देखें।

+1

आपको बहुत बहुत धन्यवाद –

17

यह विशेषता पर निर्भर करता है।

विशेषता वर्ग परिभाषा पर लागू विशेषताओं, एक संपत्ति [AttributeUsageAttribute.Inherited] ले जाती है जो यह निर्धारित करती है कि व्युत्पन्न कक्षाओं में एक जिम्मेदार विरासत में प्राप्त होता है या नहीं।

जांच इस नमूने

[global::System.AttributeUsage(AttributeTargets.Method, Inherited = true, 
    AllowMultiple = false)] 
public sealed class MyAttribute : Attribute 
{ 

    public MyAttribute (string FieldName) 
    { 
     //constructor. 
    } 

} 
+0

डिफ़ॉल्ट रूप से सच लिए बहुत-बहुत –

9

आप निर्दिष्ट कर सकते हैं जो आपके कस्टम वालों के लिए AttributeUsage attribute लागू करने, और निर्धारित करके Inherited property (जो डिफ़ॉल्ट रूप से सच है)। यह संपत्ति इंगित करती है कि क्या आपकी विशेषता कक्षाओं से प्राप्त की जा सकती है, जो कक्षाओं से प्राप्त की गई हैं जिनके पास आपकी कस्टम विशेषता लागू है।

[AttributeUsage(Inherited = false)] 
public class CustomAttribute : Attribute 
{ 
} 

अनुशंसित पढ़ें:

+2

+1 धन्यवाद – mrcrowl

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