Какая разница между 'int?' и 'int' в С#?

Я на 90% уверен, что видел этот ответ на stackoverflow раньше, на самом деле я никогда не видел "int"? синтаксис, прежде чем увидеть его здесь, но независимо от того, как я ищу, я не могу найти предыдущую запись, и это сводит меня с ума.

Возможно, я случайно поел смешные грибы, но если нет, может кто-нибудь, пожалуйста, указать предыдущий пост, если они смогут его найти или объяснить? Мой stackoverflow search-fu, по-видимому, слишком низок....

Ответ 1

Int? является сокращением для Nullable<int>.

Этот может быть тем местом, которое вы искали.

Ответ 3

Int? это то же самое, что и Nullable. Это позволяет вам иметь "нулевые" значения в вашем int.

Ответ 4

int принадлежит System.ValueType и не может иметь значение null в качестве значения. При работе с базами данных или другими типами, где элементы могут иметь нулевое значение, может оказаться полезным проверить, является ли элемент нулевым. То есть, когда int? вступает в игру. Int? - тип с нулевым значением, который может иметь значения от -2147483648 до 2147483648 и null.

Ссылка: https://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx

Ответ 5

символ? после int означает, что он может быть обнуляемым.

? Символ обычно используется в ситуациях, когда переменная может принимать ноль или целое число или, альтернативно, возвращать целое число или нуль.

Надеюсь, что контекст использования помогает. Таким образом, вы не ограничены только тем, что имеете дело с целыми числами.

Ответ 6

вы можете использовать его, когда ожидаете нулевое значение в вашем целом числе, особенно когда вы используете CASTING ex:

x= (int)y;

если у = ноль, то у вас будет ошибка. Вы должны использовать:

x = (int?)y;

Ответ 7

Int не может принять ноль, но если разработчик использует int? тогда вы сохраняете null в int как int я = null; //не принимаем int? я = ноль; // его работа в основном используется для нумерации страниц в MVC Pagelist