Estoy tratando de usar un ternario para asignar un tipo de decimal. No está funcionando para mi. ¿Me estoy volviendo loco?Decimal Ternary Not Working
Aquí hay una captura de pantalla de mi depuración. Puedes ver el valor de todo antes de dar un paso.
Y después del paso aquí es el valor. Ni siquiera es una de las opciones viables (es decir, 1 o 2000).
¿Hay alguna limitación extraña con los decimales que no conozco? Cuando lo divido en su representación lógica if/else completa, funciona bien. Lo único que puedo adivinar es que recientemente instalé .NET Framework 4.5.
ACTUALIZACIÓN
He limpiado la solución y se aseguró de que estaba corriendo en el código que se compila en modo de depuración como se recomienda en los comentarios. Ninguno de los dos pareció cambiar nada.
Empecé a sentir curiosidad cuando noté que todas las pruebas de mi unidad todavía estaban pasando. Después de investigar un poco más, descubrí que, cuando pisé una vez más (es decir, me limité a memberItems.Add), mágicamente el precio tiene el valor correcto.
¿Realiza .Net algún tipo de resolución retrasada de operadores ternarios similar al comando de producción en bloques de iteradores? Nunca antes lo había notado, pero no sé qué más podría ser. Supongo que aún podría estar ejecutándose en código compilado en modo de lanzamiento accidentalmente. He cometido errores más tontos después de haberme controlado tres veces.
Gracias por la respuesta. Mira mis capturas de pantalla. He fijado unas cuantas ventanas de visualización en ellas para que pueda ver los valores de mis variables. El precio sigue siendo 0 después del paso. –
Haz una 'limpieza' y luego reconstruye. A veces, la información de depuración no se sincroniza con el código del ejecutable real. – Servy
Asegúrese de que se está ejecutando en el modo de depuración, no en el modo de lanzamiento. También verifique que el 'precio' que fijó no sea por error una variable miembro con el mismo nombre. – dasblinkenlight