Тернарный оператор с 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();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5
Похожие ответы