Код: Выделить всё
int n1 = 10, n2=20;
n2 = n1 + (n1=n2)*0;
Итак, как же C# оценивает выражение? Похоже, + выше рассматривается как функция, вызывающая меня. Следующее объяснение кажется разумным. НО мне кажется это странным.
- Сначала (n1=n2) выполняется. И таким образом n1=20.
- Тогда n1 в n1+ (n1=n2)*0 еще не равно 20. Он рассматривается как параметр функции, поэтому помещается в стек и по-прежнему равен 10. Следовательно, n2=10+0=10.
Подробнее здесь: https://stackoverflow.com/questions/250 ... ssignments
Мобильная версия