Re[17]: «Собаку съел»
От: samius Япония http://sams-tricks.blogspot.com
Дата: 26.01.17 12:29
Оценка:
Здравствуйте, 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, то оператор < вызывался бы как-то по другому?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.