作者:陈芝麻烂谷子我勒个去 | 来源:互联网 | 2023-02-07 15:29
为什么这段代码
string str = 30 + 20 + 10 + "ddd";
Console.WriteLine(str);
生产60ddd
,
还有这个
string str = "ddd" + 30 + 20 + 10;
Console.WriteLine(str);
生产ddd302010
?
看起来很简单,但我无法理解它.请告诉我可以去的方向,以便找到详细的答案.
谢谢!
1> CodeCaster..:
+
您显示的表达式中的运算符具有相同的优先级,因为它们是相同的运算符,因此从左到右进行求值:
30 + 20 + 10 + "ddd"
-- + (int, int) returns (int)50
------- + (int, int) returns (int)60
------------ + (object, string) returns (string)"60ddd"
那么对于另一种情况:
"ddd" + 30 + 20 + 10
----- + (string, object) returns (string)"ddd30"
---------- + (string, object) returns (string)"ddd3020"
--------------- + (string, object) returns (string)"ddd302010"