Информация об изменениях

Сообщение Re[2]: Ошибки в компиляторах от 29.08.2016 18:11

Изменено 29.08.2016 18:19 Sinix

Здравствуйте, alexzzzz, Вы писали:

A>Не, ну учитывая, что у оператора обращения к члену типа приоритет выше, чем у оператора ?[], оно, возможно, и не должно компилироваться. Но откуда 'int'?

Да логично всё вроде. Код развёртывается в
 array == null ? null : array[0].HasValue


точно так же как
person?.Name.Length 
// превращается в 
person == null ? null : person.Name.Length


Почему так — долгая история, краткое изложение тут и тут. Но за человеческим объяснением — эт, разумеется, к nikov.
Re[2]: Ошибки в компиляторах
Здравствуйте, alexzzzz, Вы писали:

A>Не, ну учитывая, что у оператора обращения к члену типа приоритет выше, чем у оператора ?[], оно, возможно, и не должно компилироваться. Но откуда 'int'?

Да логично всё вроде. Код разворачивается в
 array == null ? null : array[0].HasValue


точно так же как
person?.Name.Length 
// превращается в 
person == null ? null : person.Name.Length


Почему так — долгая история, краткое изложение тут и тут. Но за человеческим объяснением — эт, разумеется, к nikov. Сам с удовольствием прочитаю