Вы ищете следующие сигналы: enter-notify-event
и leave-notify-event
.
Попробуйте следующее:
this.approved_by = IsNullOrEmpty(planRec.approved_by) ? "" : planRec.approved_by.toString();
Вы также можете использовать оператор объединения с нулем, как говорили другие - поскольку никто не привел пример, который работает с вашим кодом, вот один:
this.approved_by = planRec.approved_by ?? planRec.approved_by.toString();
Но этот пример работает только потому, что возможное значение для this.approved_by
совпадает с одним из потенциальных значений, которые вы хотите установить. Во всех остальных случаях вам нужно будет использовать условный оператор, как я показал в моем первом примере.
Начиная с C# 8.0, можно ли использовать?? = оператор для замены кода формы
if (variable is null)
{
variable = expression;
}
со следующим кодом:
variable ??= expression;
[еще 115] информация здесь
Оператор объединения (??) - это то, что вам нужно, я считаю.
Чтобы расширить ответ @ Dave ... если planRec.approved_by уже является строкой
this.approved_by = planRec.approved_by ?? "";
Вы ищете оператор объединения C #: ??. Этот оператор принимает левый и правый аргумент. Если левая часть оператора имеет значение null или обнуляемое значение без значения, он вернет правый аргумент. В противном случае вернет левую.
var x = somePossiblyNullValue ?? valueIfNull;
Думаю, лучшее, что вы можете придумать, это
this.approved_by = IsNullOrEmpty(planRec.approved_by) ? string.Empty
: planRec.approved_by.ToString();
Конечно, поскольку вы намекаете на тот факт, что authorized_by
является объектом
(который не может быть равным ""), это будет переписано как
this.approved_by = (planRec.approved_by ?? string.Empty).ToString();
You can also do it in your query, for instance in sql server, google ISNULL
and CASE
built-in functions.