Есть ли ненуль сливающихся оператор в C#
, которые в случае могут быть использованы, например, как:Есть ли способ реализовать и использовать оператор «НЕ-нулевой коалесценции»?
public void Foo(string arg1)
{
Bar b = arg1 !?? Bar.Parse(arg1);
}
Следующий случай заставил меня думать об этом:
public void SomeMethod(string strStartDate)
{
DateTime? dtStartDate = strStartDate !?? DateTime.ParseExact(strStartDate, "dd.MM.yyyy", System.Globalization.CultureInfo.InvariantCulture);
}
Я не мог бы есть strStartDate
информация, которая в случае будет null
, но если я это сделаю; я всегда уверен, что он будет в ожидании формат. Поэтому вместо инициализации dtStartDate = null
и попытке установить parse
и установить значение в пределах try catch
блока. Это кажется более полезным.
Я полагаю, что ответ нет (и нет такого оператора !??
или что-нибудь еще) Интересно, есть ли способ, чтобы реализовать эту логику, будет ли это стоит и что бы случаи, что речь идет о полезной.
почему бы вам не использовать просто [условный: Оператор] (http://msdn.microsoft.com/en-us/library /ty67wk28.aspx)? –
Что вы подразумеваете под словом "no null coalescing"? Если вы написали, что он сделал в обычном коде «this compiles now» (используя «if» или «conditional *»), как бы он выглядел? –
@ Selman22 Не * нулевой коалесцирующий * синтаксический сахар для * tenary *? Вы могли бы «x = x! = Null? x: y' вместо 'x = x ?? а также. Я полагаю, это не так, извините kardeşim –