Рассмотрим следующий типичный сценарий:
if(myObject == null) {
myObject = new myClass();
}
Мне интересно, что думают о следующей замене с использованием оператора нуль-слияния:
myObject = myObject ?? new myClass();
Я не уверен, должен ли я использовать вторую форму. Это кажется хорошим сокращением, но myObject = myObject
конструкция в начале кажется, что это может быть немного запахом кода.
Это разумная вещь, или есть лучшая стенография, которую мне не хватает? Или, может быть, «Это три линии, преодолеть это!»?
Изменить: Как уже упоминалось, возможно, назвать это типичным сценарием является чем-то завышенным. Обычно я сталкиваюсь с такой ситуацией, когда извлекаю сущность из базы данных, у которой есть свойство дочернего ссылочного типа, которое может быть заполнено или не заполнено:
myClass myObject = myClassService.getById(id);
myObject.myChildObject = myObject.myChildObject ?? new myChildClass();
MyClass
следует предоставить public static readonly
элемент Empty
значения его типа. Смотрите String.Empty
на MSDN .
??=
оператора?