Как заставить double x = 3/2; вернуть 1,5 дюйма х без суффикса D или литья? Есть ли какая-либо перегрузка оператора, которая может быть выполнена? Или какой-то вариант компилятора?Как заставить C# двоичное int-деление возвратить двойной?
Удивительно, но это не так просто, чтобы добавить отливку или суффикс по следующей причине:
Бизнес-пользователи должны писать и отлаживать свои собственные формулы. В настоящее время C# используется как DSL (язык, специфичный для домена), поскольку эти пользователи не являются инженерами-информатиками. Таким образом, все, что они знают, это то, как редактировать и создавать несколько типов классов для хранения своих «бизнес-правил», которые обычно являются математическими формулами.
Но они всегда предполагают, что double x = 3/2; будет возвращать x = 1,5 , однако в C#, который возвращает 1.
A. они всегда забывают об этом, отлаживая время отладки, позвоните мне для поддержки, и мы исправим его. B. Они считают, что это очень уродливо и ущемляет читаемость их бизнес-правил.
Как вы знаете, DSL должен быть больше похож на естественный язык.
Да. Мы планируем перейти к Boo и построить DSL на основе этого, но это в будущем.
Есть ли простой способ сделать двойной x = 3/2; вернуть 1.5 чем-то внешним по отношению к классу, чтобы он был невидим для пользователей?
Спасибо! Wayne
C# не является DSL. C# - это язык программирования общего назначения, используемый для создания библиотек и приложений. Если вы позволяете не программистам писать и интегрировать код C# в базу кода, то вы уже потеряли. Если вам необходимо предоставить поддержку сценариев, вставьте в приложение механизм сценариев. Если вам не хватает времени, создайте уменьшенный синтаксис специального назначения или пользовательский интерфейс для создания этих математических формул, чтобы вы могли интерпретировать их так, как вам нравится в реальном коде. – Aaronaught