मैं विनिर्देश, जिसमें कहा गया है की धारा 7.6.2 का उल्लेख:
रूप -x के एक ऑपरेशन के लिए, एकल ऑपरेटर अधिभार संकल्प विशिष्ट ऑपरेटर कार्यान्वयन चयन करने के लिए लागू किया जाता है। ऑपरेंड को चयनित ऑपरेटर के पैरामीटर प्रकार में परिवर्तित कर दिया जाता है, और परिणाम का प्रकार ऑपरेटर का रिटर्न प्रकार होता है। पूर्वनिर्धारित निषेध ऑपरेटरों हैं:
पूर्णांक निषेध:
int operator –(int x);
long operator –(long x);
परिणाम शून्य से एक्स को घटा कर की जाती है। यदि एक्स का मान ऑपरेंड प्रकार का छोटा प्रतिनिधित्व करने योग्य मान है (int^-2^63 के लिए int या -2^63 लंबे समय तक), तो x का गणितीय अस्वीकरण ऑपरेंड प्रकार के भीतर प्रदर्शित नहीं होता है। यदि यह किसी चेक किए गए संदर्भ में होता है, तो एक सिस्टम। ओवरफ्लो एक्सेप्शन फेंक दिया जाता है; यदि यह एक अनचेक संदर्भ में होता है, तो परिणाम ऑपरेंड का मान होता है और ओवरफ़्लो की रिपोर्ट नहीं की जाती है। यदि निषेध ऑपरेटर का संचालन यूंट प्रकार का है, तो इसे लंबे समय तक परिवर्तित कर दिया जाता है, और परिणाम का प्रकार लंबा होता है। एक अपवाद नियम है जो int मान -2147483648 (-2^31) को एक दशमलव पूर्णांक अक्षर के रूप में लिखा जाने की अनुमति देता है।
यदि निगमन ऑपरेटर का ऑपरेशन टाइप उलंग है, तो संकलन-समय त्रुटि होती है। एक अपवाद नियम है जो लंबे मूल्य -9223372036854775808 (-2^63) को एक दशमलव पूर्णांक शाब्दिक के रूप में लिखा जाने की अनुमति देता है।
फ्लोटिंग सूत्री निषेध:
float operator –(float x);
double operator –(double x);
परिणाम एक्स का मान अपने हस्ताक्षर के साथ उलटा है। यदि एक्स NaN है, तो परिणाम भी NaN है।
दशमलव निषेध:
decimal operator –(decimal x);
परिणाम शून्य से एक्स को घटा कर की जाती है। दशमलव अस्वीकार प्रकार सिस्टम के असीमित ऋण ऑपरेटर का उपयोग करने के बराबर है। डेसिमल।
जैसा कि आप देख सकते हैं, शॉर्ट्स पर परिभाषित कोई यूनरी माइनस ऑपरेटर नहीं है; ओवरलोड रिज़ॉल्यूशन एक को इट्स पर चुनता है क्योंकि वह सभी उपलब्ध यूनरी माइनस ऑपरेटरों का सबसे अच्छा मैच है।
स्रोत
2010-01-13 16:16:37
ग्रेट उत्तर; धन्यवाद! मुझे आश्चर्य है कि शॉर्ट्स पर परिभाषित कोई यूनरी माइनस ऑपरेटर क्यों नहीं है। कोई सिद्धांत? – rabidpebble
@rabidpebble यह निश्चित रूप से, सभी (सभी?) बाइनरी ऑपरेटरों के लिए समान है। उदाहरण के लिए 'p.mID + p.mID',' p.mID/p.mID', 'p.mID और p.mID' और कई अन्य सभी के पास 'int' टाइप होगा, भले ही दोनों ऑपरेशंस' शॉर्ट ' । –