ऑपरेटर + विभिन्न भार के होते हैं:
पूर्णांक + पूर्णांक = पूर्णांक
पूर्णांक + स्ट्रिंग = स्ट्रिंग
स्ट्रिंग + पूर्णांक = स्ट्रिंग
के बाद अभिव्यक्ति में:
string str = 30 + 20 + 10 + "ddd";
Console.WriteLine(str);
पहले 30 + 20 मूल्यांकन दोनों पूर्णांक हैं इसलिए ऑपरेटर का आउटपुट पूर्णांक होगा जो है।
फिर 50 + 10 मूल्यांकन किया जाएगा जो दोनों कर रहे हैं फिर से पूर्णांकों तो पूर्णांक उत्पादन जो है किया जाएगा।
फिर 60 + "ddd" जो पूर्णांक + स्ट्रिंग आपरेशन इस मामले उत्पादन स्ट्रिंग में ऑपरेटर है तो 60 + "ddd" होगा उत्पादन 60ddd।
के बाद अभिव्यक्ति में:
string str = "ddd" + 30 + 20 + 10;
Console.WriteLine(str);
पहले "ddd" + 30 मूल्यांकन करता है, जिसमें स्ट्रिंग + पूर्णांक आपरेशन जगह लेता है तो उत्पादन ddd30 होगा मिला है।
फिर ddd30 + 20 का मूल्यांकन किया जाएगा, जिसमें फिर से स्ट्रिंग + पूर्णांक आपरेशन जगह लेता है तो उत्पादन ddd3020 हो जाएगा।
फिर ddd3020 + 10 का मूल्यांकन किया जाएगा, जिसमें फिर से स्ट्रिंग + पूर्णांक आपरेशन जगह लेता है तो उत्पादन ddd302010 हो जाएगा।
स्रोत
2017-04-05 07:42:23
[ ऑपरेटर सहयोगीता] (https://en.wikipedia.org/wiki/Operator_associativity) और [सी # विशेष रूप से] (https://msdn.microsoft.com/en-gb/library/aa691323 (v = vs.71) के लिए। एएसपीएक्स) –
[प्राथमिकता और मूल्यांकन का आदेश] (https://msdn.microsoft.com/en-us/library/2bxt6kc4.aspx) – Aron
@Damien_The_Unbeliever असल में, इस मामले में 'ऑपरेटर + (int, int)' और 'ऑपरेटर ((स्ट्रिंग) int, स्ट्रिंग की अस्पष्टता) भ्रम का कारण है। – Aron