Почему оператор as может использоваться с Nullable ?

Согласно документации as , оператор , as "используется для выполнения определенных типов преобразований между совместимыми ссылочными типами ». Поскольку Nullable на самом деле является значением value type , я ожидаю, что as не будет работать с ним. Однако этот код компилируется и запускается:

object o = 7;
int i = o as int? ?? -1;
Console.WriteLine(i); // output: 7

Это правильное поведение? Документация для как неверна? Я что-то упускаю?

19
задан Community 23 May 2017 в 12:31
поделиться