.net - Why structs cannot have extern properties, but methods are OK? -


निम्न कोड का निरीक्षण करें:

  [attributeUsage (AttributeTargets.All)] सार्वजनिक वर्ग XAttribute : विशेषता {} सार्वजनिक संरचना ए {[एक्स] सार्वजनिक स्थिर extern int xx {get; }}  

यह संकलन नहीं करता है। त्रुटि संदेश कहता है

संशोधक 'extern' इस मद के लिए मान्य नहीं है

लेकिन, निम्न कोड ठीक संकलित:

  [AttributeUsage (AttributeTargets.All)] सार्वजनिक वर्ग XAttribute: विशेषता {} सार्वजनिक संरचना ए {[एक्स] सार्वजनिक स्थिर extern int GetXX (); }  

क्यों ???

संपादित करें

दोस्तों, दोस्तों मैंने यह नहीं कहा होगा कि मैं इसके लिए एक वास्तविक आवेदन नहीं कर रहा था। मैं समझता हूं, केवल शैक्षणिक रुचि यह समझने के लिए कि कुछ चीजें क्यों परिभाषित की जाती हैं कि वे किस तरह से हैं, कुछ ऐसा नहीं है जो हम में से कुछ प्रेरित करता है, इसलिए यहां पृथ्वी प्रेरणा के नीचे है। मेरे पास एक PostSharp विशेषता है, जो कि गुणित एक्सटर्न संपत्ति में एक निश्चित तर्क प्रदान करता है। विशेष रूप से, असली कोड ऐसा दिखता है:

  [लॉगगरएवेशप्रॉपर्टी] निजी स्थिर एक्सटेंशन अलोग लॉगर {get; }  

जहां PostSharp लॉगगरएवेशप्रॉपटी पहलू को संसाधित करता है और वास्तविक ग्रहक विधि को इंजेक्शन करता है, जो कि निजी स्थिर संकलक को उत्पन्न करता है ILAG उदाहरण उत्पन्न करता है यह Log4PostSharp पैकेज के हमारे घर के विस्तार का हिस्सा है। उस समय, हमने PostSharp google कोड साइट पर Log4PostSharp का विस्तारित संस्करण प्रकाशित किया है और यह विशेषता मेरी हाल ही में एक अतिरिक्त, अभी तक अप्रकाशित है।

EDIT2

ध्यान दें, कि निम्नलिखित कोड को सिर्फ ठीक से संकलित किया गया है:

  [AttributeUsage (AttributeTargets.All)] सार्वजनिक वर्ग XAttribute: विशेषता {} सार्वजनिक वर्ग ए {[एक्स] सार्वजनिक स्थिर extern int xx {get ; }}  

अंतर यह है कि ए एक वर्ग है, संरचना नहीं है।

EDIT3

मैं हूं .NET 4 का उपयोग कर।

एक्सटर्न संपत्तियों को structs में अनुमति नहीं है। / P>


Comments

Popular posts from this blog

Eclipse CDT variable colors in editor -

AJAX doesn't send POST query -

wpf - Custom Message Box Advice -