Re[8]: Функции должны быть компактными
От: IT Россия linq2db.com
Дата: 06.06.16 13:48
Оценка: +1
Здравствуйте, AUDev, Вы писали:

AUD>но теоретически ведь можно в твоем случае без хардкода структуры обхода просто делать перебор свойств типа Expression (или типа коллекции/массива Expression) у переданного в Visit объекта, и вызывать Visit для значений этих свойств (или свойств элементов коллекции Expression), если порядок обхода свойств не важен?


Если бы и можно было, то я бы не стал этого делать из соображений производительности.

Но нельзя минимум по двум причинам.
Во-первых, эта структура не однородная. Т.е. в ней встречаются объекты как здесь, которые имеют другой тип, но в них есть наш Expression. Т.е. происходит определённый разрыв.
Во-вторых, в члучае трансформаций для Expression вызывается метод Update специфичный для конкретного типа Expression.
Если нам не помогут, то мы тоже никого не пощадим.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.