Тернарный оператор с 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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д