Порядок выполнения операций управляемый приоритетом - C#
Формулировка задачи:
В книге Хейлсберг А. - Язык программирования C# - 2012.pdf
Цитирую:
Когда в выражении содержится много операций, порядок, в котором выполняются отдельные операции, определяется приоритетом. Например, выражение x + y * z вычисляется как x + (y * z), поскольку операция * имеет более высокий приоритет по сравнению с операцией +.
Затем, говорится:Порядок выполнения операций, управляемый приоритетом, — не тот порядок, в котором вычисляются операнды. Операнды вычисляются слева направо, точка. В предыдущем примере сначала будет вычисляться x, затем y, затем z, затем будет выполняться умножение, затем сложение. Вычисление операнда x произойдет раньше, чем y, потому что x находится слева от y; выполнение операции умножения произойдет раньше, чем сложения, потому что умножение имеет более высокий приоритет.
Если понимать как говорит автор то получается 1. вычисляем x (?????!!!!) 2. Умножаем y, z 3. складываем x + результат 2 операции Что подразумевается под "вычислением операндов" ?Решение задачи: «Порядок выполнения операций управляемый приоритетом»
textual
Листинг программы
using System;
namespace ConsoleApplication205
{
class Program
{
static void Main()
{
var res = x() + y() * z();
Console.ReadKey();
}
static float x()
{
Console.WriteLine("I am x");
return 1;
}
static float y()
{
Console.WriteLine("I am y");
return 2;
}
static float z()
{
Console.WriteLine("I am z");
return 3;
}
}
}