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