क्या सी # 4.0 का ExpandoObject समर्थन Prototype-based inheritance है? यदि नहीं, तो क्यों नहीं (यह डिजाइन द्वारा था?) और यह कैसे लागू किया जा सकता है? यदि हां, यह कैसे काम करता है और जावास्क्रिप्ट में जिस तरह से काम करता है उससे तुलना में क्या अंतर हैं?क्या सी # 4.0 का एक्सपोन्डोब्जेक्ट प्रोटोटाइप-आधारित विरासत का समर्थन करता है?
उत्तर
क्या सी # 4.0 का एक्सपोन्डोब्जेक्ट प्रोटोटाइप-आधारित विरासत का समर्थन करता है?
सबसे पहले, ध्यान दें कि ExpandoObject क्लास में सी # 4.0 के साथ कुछ भी नहीं है। सी # टीम ने इस वस्तु को डिजाइन या कार्यान्वित नहीं किया था। सी # 4.0 और ExpandoObject क्लास केवल .NET के नवीनतम संस्करण के साथ दोनों जहाज के साथ होता है।
आपके प्रश्न का उत्तर करने के लिए मैं ExpandoObject, जो स्पष्ट रूप से कहा गया है के लिए documentation का उल्लेख:
ExpandoObject वर्ग गतिशील वस्तु अवधारणा है कि सक्षम, हो रही है की स्थापना, और सदस्यों को लागू की एक कार्यान्वयन है। यदि आप उन प्रकारों को परिभाषित करना चाहते हैं जिनके पास गतिशील प्रेषण अर्थशास्त्र है, तो डायनामिक ऑब्जेक्ट क्लास का उपयोग करें।
दस्तावेज़ीकरण के अनुसार, यदि आप केवल सदस्यों के आविष्कार के ऊपर कस्टम प्रेषण अर्थशास्त्र चाहते हैं तो डायनामिक ऑब्जेक्ट क्लास का उपयोग करें।
यदि नहीं, तो क्यों नहीं? क्या यह डिजाइन द्वारा था?
कोई व्यक्ति विस्तारित ऑब्जेक्ट चाहता है लेकिन वह व्यक्ति न तो चाहता है और न ही प्रोटोटाइप विरासत की आवश्यकता हो सकता है। वस्तुओं को विस्तारित करने के लिए तर्कसंगत रूप से किसी भी प्रकार की विरासत की आवश्यकता नहीं होती है।
इसे कैसे कार्यान्वित किया जा सकता है?
डायनामिक ऑब्जेक्ट ऑब्जेक्ट का उपयोग करें। अपना खुद का प्रोटोटाइप विरासत तंत्र लिखें।
यदि हां, यह कैसे काम करता है और जावास्क्रिप्ट में काम करने के तरीके में मतभेद हैं?
आप अपने खुद के प्रोटोटाइप विरासत है कि वास्तव में JScript की तरह है लिखने के लिए प्रयास कर रहे हैं, मैं अत्यंत ध्यान से ECMAScript विनिर्देश को पढ़ने के लिए प्रोत्साहित करते हैं। प्रोटोटाइप विरासत सरल दिखती है, लेकिन वहां सूक्ष्मताएं हैं जो अधिकांश लोगों को गलत होती है। उदाहरण के लिए, यहां तक कि जेस्क्रिप्ट विशेषज्ञों को अक्सर यह छोटी पहेली गलत होती है। यह जेस्क्रिप्ट कोड प्रिंट क्या करता है?
var Animal = new Object();
function Reptile() { }
Reptile.prototype = Animal;
var lizard = new Reptile();
print(lizard instanceof Reptile); // this is true
print(lizard.constructor == Reptile); // is this true or false? explain your answer!
प्रोटोटाइप विरासत हमेशा ऐसा करने के तरीके से काम नहीं करती है जो आपको लगता है! इस प्रिंट के बारे में एक स्पष्टीकरण के लिए और क्यों, my article on the subject देखें।
- 1. रूबी एकाधिक विरासत का समर्थन करता है
- 2. पायथन कॉन्फ़िगर पार्सर जो अनुभाग विरासत का समर्थन करता है?
- 3. क्या ऑर्मेलाइट समर्थन विरासत है?
- 4. क्या सी # एकाधिक रिटर्न मानों का समर्थन करता है?
- 5. क्या उद्देश्य-सी वर्ग वर्ग चर का समर्थन करता है?
- 6. क्या एसक्यूएलकेमी कैशिंग का समर्थन करता है?
- 7. क्या फैंटॉमजेएस कुकीज़ का समर्थन करता है?
- 8. क्या मोनो एक्सएएमएल का समर्थन करता है?
- 9. क्या OpenRasta मोनो का समर्थन करता है?
- 10. क्या हेरोोकू PHP का समर्थन करता है?
- 11. क्या cocos2d एआरसी का समर्थन करता है?
- 12. क्या jsoup xpath का समर्थन करता है?
- 13. क्या LevelDB जावा का समर्थन करता है?
- 14. क्या Qt OpenMP का समर्थन करता है?
- 15. क्या लुआ यूनिकोड का समर्थन करता है?
- 16. क्या मिनजीडब्ल्यू एमएफसी का समर्थन करता है?
- 17. क्या Arduino थ्रेडिंग का समर्थन करता है?
- 18. क्या tryhaskell.org समर्थन परिभाषाओं का समर्थन करता है?
- 19. क्या स्कैला समर्थन पूंछ रिकर्सन ऑप्टिमाइज़ेशन का समर्थन करता है?
- 20. क्या सेलफोर्स स्थिर तरीकों का सर्वोच्च समर्थन विरासत है?
- 21. सी सी फंक्शन एक्सप्रेशन का समर्थन करता है?
- 22. क्या Opencl समर्थन फंक्शन पॉइंटर्स करता है?
- 23. क्या Google डार्ट मिश्रण मिश्रण का समर्थन करता है?
- 24. क्या DotNetNuke 6 अजाक्स नियंत्रण टूलकिट का समर्थन करता है?
- 25. क्या JSONKit एआरसी का समर्थन करता है, या क्या कोई कांटा है जो एआरसी का समर्थन करता है?
- 26. क्या विजुअल स्टूडियो डेटा कैश ऑपरेशंस का समर्थन करता है?
- 27. क्या मोंगोडीबी ध्वनि या अस्पष्ट मिलान का समर्थन करता है?
- 28. क्या सी # जेनेरिक समर्थन प्रकार हस्ताक्षर बाधाओं का समर्थन करता है?
- 29. क्या VB.NET 2010 अनाम वस्तुओं का समर्थन करता है?
- 30. स्ट्रक्चर मैप का नवीनतम संस्करण क्या है जो .NET 3.5 का समर्थन करता है?
दिलचस्प सवाल। मुझे लगता है कि सबसे बड़ी समस्या मैं सोच सकता हूं उदाहरण के तरीकों - यदि आपके पास कोई है, तो आप 'इस' का संदर्भ कैसे दे सकते हैं? सभी संपत्तियों को प्रतिलिपि बनाना काफी आसान होना चाहिए, लेकिन मुझे लगता है कि आपका प्रश्न उससे भी बड़ा है। आपको इसकी ज़रूरत क्यों होगी? अकादमिक रुचि? – Kobi
सामान्य रुचि, अकादमिक से अधिक ... अपने 4.0 संस्करण में गतिशील टाइपिंग की दिशा में सी # के नए-नए अभिविन्यास को देखते हुए, सवाल मेरे दिमाग में आया कि यह कितना दूर है। प्रोटोटाइप-आधारित विरासत, कुछ गतिशील रूप से टाइप की गई भाषाओं की एक विशेषता है। – luvieere