, GetConstantValue
और GetRawConstantValue
PropertyInfo
कक्षा के तरीकों के बीच अंतर क्या है? दुर्भाग्यवश एमएसडीएन दस्तावेज इस विषय पर बहुत स्पष्ट नहीं है।GetValue, GetConstantValue और GetRawConstantValue
उत्तर
दोनों GetConstantValue
और GetRawConstantValue
शाब्दिक साथ उपयोग के लिए लक्षित कर रहे हैं (क्षेत्रों के मामले में लगता है const
, लेकिन शब्दार्थ यह सिर्फ क्षेत्रों की तुलना में अधिक के लिए आवेदन कर सकते हैं) - GetValue
जो रनटाइम पर कुछ के वास्तविक मूल्य मिलेगा विपरीत, एक स्थिर मूल्य (GetConstantValue
या GetRawConstantValue
के माध्यम से) रनटाइम निर्भर नहीं है - यह मेटाडेटा से सीधे है।
तो फिर हम GetConstantValue
और GetRawConstantValue
के बीच अंतर प्राप्त करते हैं। असल में, उत्तरार्द्ध अधिक प्रत्यक्ष और आदिम रूप है। यह मुख्य रूप से enum
सदस्यों के लिए दिखाता है; - उदाहरण के लिए अगर मैं एक था:
enum Foo { A = 1, B = 2 }
...
const Foo SomeValue = Foo.B;
तो SomeValue
की GetConstantValue
Foo.B
है; हालांकि, GetRawConstantValue
SomeValue
2
है। विशेष रूप से, आप GetConstantValue
का उपयोग नहीं कर सकते हैं यदि आप प्रतिबिंब-केवल संदर्भ का उपयोग कर रहे हैं, क्योंकि मुक्केबाजीFoo
के मान की आवश्यकता होगी, जिसे आप केवल प्रतिबिंब का उपयोग करते समय नहीं कर सकते हैं।
मुझे नहीं पता कि आप क्या करने की कोशिश कर रहे हैं। वैसे भी, अगर आप प्रतिबिंब का उपयोग करके किसी संपत्ति के मूल्य को पुनः प्राप्त करना चाहते हैं तो आपको GetValue का उपयोग करना होगा। अर्थात। कुछ इस तरह:
private string _foo = "fooValue";
public string Foo
{
get { return _foo; }
set { _foo = value; }
}
public void Test()
{
PropertyInfo pi = this.GetType().GetProperty("Foo");
string v = (string)pi.GetValue(this, null);
}
नोट के बाद से संपत्ति स्थिर नहीं है कि यदि आप इस उदाहरण में GetConstantValue या GetRawConstantValue फोन आप एक InvalidOperationException मिलता है।
GetConstantValue और GetRawConstantValue के बीच का अंतर मार्क द्वारा पूरी तरह से समझाया गया है।
- 1. PropertyInfo SetValue और GetValue इतनी धीमी क्यों हैं?
- 2. Google ऐप स्क्रिप्ट पर getValue() और getDisplayValue() के बीच अंतर
- 3. मैं प्रतिबिंब के "GetValue" से प्राप्त मूल्य-प्रकारों की तुलना कैसे कर सकता हूं?
- 4. सिल्वरलाइट: XAPs के क्षेत्र में GetValue के प्रतिबिंब का उपयोग नहीं कर सकता?
- 5. JFormattedText के लिए getValue का उपयोग किसी अन्य JFormattedText फ़ील्ड में प्रदर्शित करने के लिए
- 6. वीबीए में इस GetValue फ़ंक्शन में सेल "ए 1" का उपयोग क्यों किया जा रहा है?
- 7. java.util.zip.CRC32.getValue() एक लंबे समय तक वापस क्यों नहीं आती है?
- 8. एनोटेशन प्रोसेसर
- 9. स्केला जेनरिक और विरासत
- 10. बेस और व्युत्पन्न कक्षाएं सी ++
- 11. ऑब्जेक्ट सदस्य फ़ंक्शंस में PHP और स्टेटिक वेरिएबल
- 12. बूस्ट :: पायथन और कमजोर_पीटीआर:
- 13. वैकल्पिक .ofNullable और विधि chaining
- 14. सेल मिलान मूल्य और वापसी वापसी
- 15. विधि ओवरलोडिंग और पॉलिमॉर्फिज्म
- 16. बूस्ट :: पायथन एक्सपोज़िंग सी ++ फ़ंक्शंस का उपयोग करके और लौटने वाले फ़ंक्शन
- 17. का मेल DataAnnotations और IDataErrorInfo WPF
- 18. जावा एनम, कैसे और कब स्मृति निरंतर
- 19. फ्लोट और डबल लिटरल के लिए टेम्पलेट क्लास में फ़ंक्शन विशेषज्ञता
- 20. सी ++: कॉपी कन्स्ट्रक्टर और कॉपी असाइनमेंट ऑपरेटर को कार्यान्वित करना
- 21. क्लैंग ++ एक्सकोड 4.4 गैर स्टेटिक सदस्य प्रारंभ और मूव कन्स्ट्रक्टर
- 22. सी # 6.0 और प्रतिबिंब, संपत्ति प्रारंभकर्ताओं का मूल्य प्राप्त करना
- 23. जावा 8 नक्शा फिल्टर और प्रकार
- 24. प्राप्त कर रहा है कुकी और सरणी मूल्यों
- 25. विंडो लोड और डब्ल्यूपीएफ
- 26. इनपुट फ़ील्ड मानों को कैसे समेटें और इसे जावास्क्रिप्ट का उपयोग करके HTML तालिका में प्रदर्शित करें?
- 27. चादर और नाम की प्रतिलिपि बनाने और नाम बदलने के लिए Google स्क्रिप्ट एक सेल संदर्भ
- 28. मैगेंटो सेल्स ऑर्डर ग्रिड नाम और स्कस कॉलम जोड़े गए रिकॉर्ड की गलत संख्या दिखाता है
- 29. हाइपर जैक्सबी 3 और एक्सएसडी: कोई टाइप टाइप करें
- 30. रिफाइंड और अस्तित्व प्रकार महत्व देता
मार्क आपकी व्याख्या में 'Properties' के बारे में फ़ील्ड के लिए 'GetRawConstantValue' शामिल है। गुण सही नहीं हो सकते हैं? यदि गलत है, तो क्या आप 'Properties' –
@ श्रीराम सक्थिवेल के साथ एक उदाहरण दिखा सकते हैं, वहां एक समस्या है, जिसमें AFAIK C# में निरंतर अर्थशास्त्र के साथ गुण व्यक्त करने के लिए एक तंत्र शामिल नहीं है। आईएल में किसी भी व्यक्तिगत भाषा की तुलना में अधिक चीजें शामिल हैं। तो नहीं: मुझे विश्वास नहीं है कि एक उदाहरण देना संभव है, कच्चे आईएल लिखने से कम। –
वैसे मेरा अनुमान सही था, धन्यवाद मार्क –