Я думал, что T? является просто сокращением для Nullable<T> компилятора. Согласно MSDN:
Синтаксис
T?является сокращением дляNullable<T>, гдеT- тип значения. Эти две формы взаимозаменяемы.
Тем не менее, существует небольшая (незначительная) разница: Visual Studio не позволяет мне называть статические методы по сокращению:
bool b1 = Nullable<int>.Equals(1, 2); //no error
bool b2 = int?.Equals(1, 2); //syntax error "Invalid expression term 'int'"
Почему? Есть ли причина для этого ограничения?