Приведенный пример плохой - такой плохой, фактически позорный. У него буквально есть вызов, который оценивает только два разных контекста, чтобы определить, выполняется ли область в квадратных скобках или она пропущена.
Вот логический анализ, чтобы лучше объяснить, что:
При размещенном источнике, если оценка равна false, операция null-coalesce замыкается накоротко и выдает истинную оценку на «== false». Затем выполняется содержимое фигурных скобок.
Если эта оценка является чем-то еще, тогда оценка обнуляется для 'true' и выдает ложную оценку в == false. Затем содержимое фигурных скобок пропускается.
Итак на самом деле правильный и очень простой способ написать оригинальный источник:
if( Convert.ToBoolean( ViewState[tp.UniqueID + "_Display"] ) == false) {
// do something
}
Примечательно, что здесь нет операции слияния.
Проблема заключается в том, что этот пример не подходит даже для оправдания использования операции с нулевым слиянием, и это предполагает необходимость когда-либо «преобразовывать» операцию в Visual Basic.