На данный вопрос уже ответили:
При просмотре одно из обучающих видео увидел следующую запись:
public event EventHandler Boom;
protected virtual void OnBoom();
{
Boom?.Invoke(this, EventArgs.Empty);
}
А конкретно интересен оператор '?' при вызове метода Invoke на событии. Зачем нужен данный оператор? Какую роль он выполняет если применяется подобным образом при вызове методов? Касательно этого куска кода, который некачественно вырезан из контекста, информация не интересна. Нужно общее предназначение оператора '?'.
Начиная с C# 6.0 в языке появился оператор условного null (Null-Conditional Operator) или, как его нередко называют, элвис-оператор. Он позволяет упростить проверку на значение null в условных конструкциях.
И в данном примере, если Boom == null, вызов Invoke не произойдет. Если Boom != null, то вызов произойдет.
Общее предназначение оператора таково - если переменная, которая стоит перед ?, равна null, то вызов метода на этом объекте не произойдет.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей