Cómo forzar doble x = 3/2; para devolver 1.5 en x sin el sufijo D o el casting? ¿Hay algún tipo de sobrecarga del operador que pueda hacerse? O alguna opción de compilador?Cómo forzar C# binary int division a devolver un doble?
Sorprendentemente, no es tan simple de añadir el casting o sufijo por la siguiente razón:
usuarios de negocios necesitan para escribir y depurar sus propias fórmulas. Actualmente, C# se está utilizando como un DSL (lenguaje específico de dominio) en el sentido de que estos usuarios no son ingenieros en informática. Entonces, todo lo que saben es cómo editar y crear algunos tipos de clases para mantener sus "reglas comerciales", que generalmente son solo fórmulas matemáticas.
Pero siempre asumen que el doble x = 3/2; devolverá x = 1.5 , sin embargo, en C# que devuelve 1.
A. Siempre olvidan esto, pierden el tiempo depurando, llámame para obtener asistencia técnica y lo solucionamos. B. piensan que es muy feo y perjudica la legibilidad de sus reglas comerciales.
Como ya sabe, las DSL deben ser más como un lenguaje natural.
Sí. Estamos planeando mudarnos a Boo y construir un DSL basado en él, pero eso es más adelante.
¿Existe una solución simple para hacer doble x = 3/2; ¿devuelve 1.5 por algo externo a la clase por lo que es invisible para los usuarios?
Gracias! Wayne
C# no es un DSL. C# es un lenguaje de programación de propósito general utilizado para crear bibliotecas y aplicaciones. Si permite que los que no son programadores escriban e integren el código C# en su código base, entonces ya habrá perdido. Si necesita proporcionar soporte de scripting, inserte un motor de scripting en la aplicación. Si no tiene tiempo, cree una sintaxis o interfaz de usuario a escala reducida para propósitos especiales para compilar estas fórmulas matemáticas, de modo que pueda interpretarlas como prefiera en el código real. – Aaronaught