연산자 +는 다른 과부하가 있습니다
INT + INT = INT
INT + 문자열 = 문자열을
문자열 + INT = 문자열 다음의 식에
:
string str = 30 + 20 + 10 + "ddd";
Console.WriteLine(str);
처음으로 30 + 20 평가 결과가 모두 정수이므로 연산자의 출력은 인 정수가됩니다.
나서
50 + 10 다시 그래서 정수
60 인 출력된다의 정수되는 양이 평가된다.
이어서 60 + "DDD"정수 + 문자열 동작이 경우 출력 문자열 연산자이다 그래서 60 + "DDD"을 출력 60ddd. 다음의 식에
:
string str = "ddd" + 30 + 20 + 10;
Console.WriteLine(str);
먼저 "DDD는"+ 30 출력이 ddd30을 할 수 있도록 문자열 + 정수 작업이 일어나는들을 평가를 얻었다.
은 다음
ddd30는 + 20는 출력이
ddd3020을 할 수 있도록하는 다시 문자열 + 정수 연산이 수행 평가를 얻을 것이다.
은 다음
ddd3020는 + 10는 출력이
ddd302010을 할 수 있도록하는 다시 문자열 + 정수 연산이 수행 평가를 얻을 것이다.
[ 연산자 연관성] (https://en.wikipedia.org/wiki/Operator_associativity) 및 [C# 구체적] (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)'와 '연산자 ((string) int, string)'의 혼란이 혼동의 원인이됩니다. – Aron