क्योंकि कोई "शॉर्ट-शॉर्ट" ऑपरेटर नहीं है। दोनों ऑपरेटरों को int में पदोन्नत किया जाता है।
सी # 3 कल्पना की धारा 7.7.5 से:
पूर्वनिर्धारित घटाव ऑपरेटरों नीचे सूचीबद्ध हैं। ऑपरेटर सभी एक्स से y घटाएं।
पूर्णांक घटाव:
int operator –(int x, int y);
uint operator –(uint x, uint y);
long operator –(long x, long y);
ulong operator –(ulong x, ulong y);
एक जाँच संदर्भ में, अगर अंतर परिणाम प्रकार की श्रेणी से बाहर है, एक System.OverflowException फेंक दिया है।
public static class NumericExtensions
{
public static short Subtract(this short target, short value)
{
return (short)(target - value);
}
}
दूसरों का जवाब दे दिया:
(। और फिर वहाँ चल रहा है बिंदु घटाव)
स्रोत
2009-10-10 06:35:02
यदि केवल वे एक्सटेंशन ऑपरेटर की अनुमति देते हैं ...;) – RCIX
एरिक लिपर्ट ने इस पर टिप्पणी की (Enums के संबंध में) : http://blogs.msdn.com/ericlippert/archive/2005/10/19/fyi-c-2-0-has-a-breaking-change-in-enum-subtraction.aspx – jasonh
मैंने अक्सर कामना की है यह कुछ भाषाओं में ... लेकिन फिर मुझे याद है कि कितने लोग इसके बाहर बिल्ली का दुरुपयोग करेंगे। –