Здравствуйте, vmpire, Вы писали:
V>Самый быстрый и реально работающий способ (не без недостатков, конечно) это тупо писать выражения на C#, а потом компилировать их в runtime и выполнять. Удобно для этого завести базовый класс с виртуальным методом типа Calculate, а динамический класс от него наследовать. В нём тогда можно наопределять protected методов Min, Max и всё, что угодно.
Мне всё равно придётся парсить каким-то образом введённый текст. Хотя бы для выделения имён переменных (полей таблицы). В случае ошибки ввода — будет сложнее сказать пользователю что не так. Отдавать ему сообщения компилятора как-то не катит. Одно дело генерить код на C# на основе ввода, а другое — рассматривать ввод как готовый код. ИМХО, конечно.
V>Плюсы — выражение будет вычисляться быстро и очень легко расширять дополнительными функциями.
V>Минус — на C# пользователь может написать больше, чем того хотелость, то есть тут потенцияльная дырка в секьюрити. Дырка закрывается дополнительной валидацией скомпилированного.
Ага, принцип понял. Спасибо.
... << RSDN@Home 1.2.0 alpha 4 rev. 1228>>