Здравствуйте, Serginio1, Вы писали:
S>Здравствуйте, samius, Вы писали:
S>>Это я уточняю вариант. Т.е. пишу что речь не про SQL или еще что-то там. Т.е. когда деревья транслируются в IL, то способ вызова оператора сравнения невозможно отличить от того что получается при обычной компиляции исходника C#. Именно это я хотел сказать.
S> Я же тебе дал ссылкую Там показано во, что транслуруются Expression<Func<int,bool>> greaterThenZero=value=> value>0;
S>А вот Iquerable принимает как раз Expression. То есть когда ты видишь Where(value=> value>0) то это не Func<int,bool> а Expression<Func<int,bool>> S>которые могут и компилироваться в инлайн. Ты же передаешь не функцию, а дерево
Какая разница, что я передаю, если обычный оператор <, он же переписанный линк реврайтером, он же поданный в виде Expression и скомпилированный в рантайме, все они вызываются одинакого с точностью до инструкции при выполнении?
S>>Это известно со времен LinqToSQL S> Правильно, но работаем мы не с Func, а с Expression.
И? А если бы мы работали с DynamicMethod, то оператор < вызывался бы как-то по другому?