Что это за оператор такой? Зачем он нужен?
?? - это оператор "null-объединения". Внешне он немного напоминает тернарный оператор, но идея его совершенно иная.
Имеем конструкцию: [операнд1] ?? [операнд2].
Оператор ?? возвращает значение операнда1 если он НЕ равен нулю. В противном же случае будет возвращено значение операнда2.
Используется этот оператор когда мы имеем дело с nullable типами, тобишь с типами, допускающими значение null. С его помощью можно очень просто проверить является ли наша переменная null, или там есть какое-то значение. Хотя честно говоря, мне ещё не приходилось встречать его в реальном проекте)