Недавно я много писал в Objective C, а также работал над несколькими проектами на C #.В этом процессе я обнаружил, что я скучаю по вещам в обоих направлениях.
В частности, когда я кодирую в C #, я обнаруживаю, что пропускаю синтаксис короткой нулевой проверки Objective C.
Почему вы предполагаете, что в C # вы не можете проверить объект на нулевое значение с помощью синтаксиса, такого как:
if (maybeNullObject) // works in Objective C, but not C# :(
{
...
}
Я согласен, что if (maybeNullObject != null)
является более подробным / понятным синтаксисом, но эточувствует себя не только утомительным постоянно писать в коде, но слишком многословно .Кроме того, я полагаю, что синтаксис if (maybeNullObject)
обычно понимается большинством разработчиков (Javascript, Obj C и я предполагаю, что другие).
Я выбрасываю это как вопрос, предполагая, что, возможно, есть конкретная причина C #запрещает синтаксис if (maybeNullObject)
.Однако я думаю, что компилятор может легко преобразовать выражение объекта, такое как if (maybeNullObject)
автоматически (или автомагически ), в if (maybeNullObject != null)
.
Отличная ссылка на этот вопрос: Какидея становится функцией языка C #? .
Редактировать
Синтаксис краткой проверки нуля, который я предлагаю, будет применяться только к объектам.Короткая нулевая проверка не будет применяться к примитивам и типам, таким как bool?
.