Страницы

Поиск по вопросам

пятница, 19 октября 2018 г.

Что означает эта конструкция с EventHandler?

VS предложил "упростить"
... EventHandler args = MyHandler if (args != null) { args(this, e); } ...
На
... MyHandler?.Invoke(this, e) ...
Что это значит? Куда копать?


Ответ

В С# 6 появился так называемый null propagation operator. Он позволяет упростить довольно утомительные проверки на null, и означает, что если выражение в его левой части равно null, то он вернёт null, а если оно имеет какое-то другое значение, то будет возвращено значение поля/свойства из правой части, либо будет выполнен метод из правой части. Согласитесь, что писать
data = some?.GetData();
явно удобнее, чем
if(some != null) data = some.GetData();

Комментариев нет:

Отправить комментарий