2012-10-17 31 views
12

सी # में आप ऑपरेटर ओवरलोड कर सकते हैं, उदा। + और *। उनकी गणितीय व्याख्या में, इन ऑपरेटरों के पास प्राथमिकता का एक अच्छी तरह परिभाषित क्रम है।ऑपरेटर ओवरलोडिंग और प्राथमिकता

क्या यह आदेश अतिभारित होने पर रखा जाता है, क्या यह कुछ निर्धारिक तरीके से बदलता है, या आप प्राथमिकता के क्रम को भी अधिभारित कर सकते हैं?

उत्तर

15

यदि आप एक ऑपरेटर अधिभारित करते हैं, तो यह हमेशा डिफ़ॉल्ट कार्यान्वयन पर प्राथमिकता लेगा। हालांकि, आप ऑपरेटर की प्राथमिकता को स्वयं नहीं बदल सकते हैं, इसलिए इसे डिफ़ॉल्ट के रूप में रखा जाएगा। MSDN पर अधिक जानकारी।

प्रासंगिक उद्धरण:

उपयोगकर्ता-परिभाषित ऑपरेटर कार्यान्वयन हमेशा पूर्वनिर्धारित ऑपरेटर कार्यान्वयन से प्राथमिकता दी जाती: केवल जब लागू नहीं उपयोगकर्ता परिभाषित ऑपरेटर कार्यान्वयन मौजूद पूर्वनिर्धारित ऑपरेटर कार्यान्वयन पर विचार किया जाएगा।

और

उपयोगकर्ता-परिभाषित ऑपरेटर घोषणाओं वाक्य रचना, पूर्वता, या एक ऑपरेटर की संबद्धता को संशोधित नहीं कर सकते हैं। उदाहरण के लिए,/ ऑपरेटर हमेशा एक बाइनरी ऑपरेटर होता है, हमेशा Section 7.2.1 में निर्दिष्ट प्राथमिकता स्तर होता है, और हमेशा बाएं-सहयोगी होता है।

4

ओवरलोडिंग प्राथमिकता नहीं बदलती है।

ऑपरेटर प्राथमिकता संकलक द्वारा निर्धारित की जाती है, और कम से कम संकलक को अनुकूलित किए बिना नहीं बदला जा सकता है।

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