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

84

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

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

Кори
источник

Ответы:

123

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

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

Забытая точка с запятой
источник
24

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

Чарльз Грэм
источник
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.

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

Sanmatrix
источник
0

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

x= (int)y;

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

x = (int?)y;
Мохаммад Тахер Асад
источник
0

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

Фахад Джамал уддин
источник
Кажется, это то же самое, что и другой ответ.
JJJ