В чем разница между int? и int в C #?


84

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

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

Ответы:





7

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

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


0

символ ? после int означает, что он может иметь значение NULL.

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

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


0

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

x= (int)y;

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

x = (int?)y;

0

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


Кажется, это то же самое, что и другой ответ.
JJJ
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.