Есть код:
SomeObject.DoA().DoB().DoC();
В каком порядке выполнятся функции DoA(), DoB(), DoC()?
Более формально можно сказать и так. Оператор . имеет левую ассоциативность.
Поэтому выражение выше можно рассматривать так:
((SomeObject.DoA()).DoB()).DoC();
тут вроде вопросов про порядок уже никаких не возникает.
Просто по логике: к чему применяется f() в a.f()? К объекту a. К чему применяется DoC()? к результату DoB(). Как его получить, сначала вызвав DoC()? Никак. Значит, DoB() - предшествует DoC(). То же самое относится и к порядку DoA() и DoB().
Сборка персонального компьютера от Artline: умный выбор для современных пользователей