2009-07-27 17 views
5

में संदेश पासिंग सी # में ओओपी अवधारणा 'संदेश पासिंग' का उदाहरण क्या है (कॉलिंग विधियों/पासिंग पैरामीटर/फायरिंग घटनाक्रम/हैंडलिंग घटनाक्रम/???) और इसे संदेश पास क्यों कहा जाता है?ओओपी - सी #

+0

हू? क्या यह एक असली सवाल है? 'क्योंकि आपने स्वयं को उत्तर दिया। असल में क्योंकि यह वस्तुएं संवाद करने का तरीका है; इसलिए इसे "संदेश गुजरना" कहा जाता है। –

+0

हां यह है। मैंने अवधारणा की खोज की। और मैं इसे सत्यापित करने के लिए यहां हूं। –

उत्तर

5

विधि कॉल।

यह संदेश के "एक समारोह को" जरूरी धारणा से अलग करने के लिए, और विचार को सुदृढ़ करने कि प्राप्त वस्तु क्या करना है फैसला करता गुजर कहा जाता है। कॉल साइट पर, आप बस रिसीवर को "संदेश" बताते हैं।

2

इसे पास करने वाले पैरामीटर से अलग करने के लिए संदेश पास किया जाता है।

संदेश गुजर का एक बड़ा फायदा यह है कि आप विधि संदेश प्राप्त करने के हस्ताक्षर बदले बिना संदेश की सामग्री को बदल सकता है।

दूसरा यह है कि कई विधियों को एक ही जानकारी की आवश्यकता हो सकती है, इसलिए इसे उसी स्थान पर परिभाषित और बदला जा सकता है।

+0

मैं आपके उत्तर की सराहना करता हूं। लेकिन एसआईआई का जवाब स्पष्ट है। –

2

कुछ ऐसे हैं जो महसूस करते हैं कि संदेश गुजर रहा है और विधि कॉल अलग हैं। हम शब्द को एक दूसरे के रूप में उपयोग करते हैं, लेकिन इसका अर्थ सूक्ष्म है।

smalltalk में, संदेश गुजर बाध्य समय चलाया गया था, और वस्तु निर्धारित करने के लिए यह संदेश है कि स्पष्ट रूप से एक विधि के रूप में परिभाषित नहीं किया गया था संभाल सकता एक तरीका था। रूबी इस method_missing कॉल करता है। विशेष रूप से सी ++ के तरीके संकलित समय पर बंधे होते हैं, बिना किसी संदेश को गतिशील रूप से जोड़ने के तरीकों को जोड़ने के लिए। एक बार जब आप चारों ओर गतिशीलता फेंकना शुरू करते हैं, तो सी # 4.0 में एक मिश्रण होता है।

संदेश का एक और स्कूल गुज़र रहा है, एरलांग का मानना ​​है कि सभी संदेश तर्कों को राज्य में decoupled की जरूरत है। यही है, वे या तो अपरिवर्तनीय या प्रतियां हैं।

+0

मैंने बाद की परिभाषा को काफी हद तक सुना है - कि संदेश डीकॉप्लेड विधि कॉल हैं जिन्हें बहु-थ्रेडेड या मशीन से संसाधित किया जा सकता है। सी ++ और जावा जैसी भाषाओं में यह कार्यक्षमता मौजूद नहीं है इसलिए शब्द समानार्थी होते हैं। –

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