Тернарный оператор с decimal? и Null не работает - C#
Формулировка задачи:
Почему тернарный оператор с типом decimal? и значением Null не работает? Однако если написать подробно без тернарного оператора, то все работает?
Поле SummFrom и SummTo имеют тип decimal?.
public void SetProperties(bool notDeleting, bool needSetSummFrom, decimal summFrom, bool needSetSummTo, decimal summTo) { if (notDeleting) { SummFrom = needSetSummFrom ? (decimal?)summFrom : null; //Присваевает всегда NULL !!! SummTo = needSetSummTo ? (decimal?)summTo : null; //Присваевает всегда NULL !!! //Так все работает правильно: //if (needSetSummFrom) // SummFrom = summFrom; //else // SummFrom = null; //if (needSetSummTo) // SummTo = summTo; //else // SummTo = null; } else NeedDelete = true; }
Решение задачи: «Тернарный оператор с decimal? и Null не работает»
textual
Листинг программы
bool needSetSummFrom = true; decimal summFrom = -0.5m; decimal? SummFrom = needSetSummFrom ? (decimal?)summFrom : null; Console.WriteLine(SummFrom); Console.ReadKey();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д