В чем разница между «int?» и 'int' в c#?
Вопрос
Я на 90% уверен, что видел этот ответ на Stackoverflow, на самом деле я никогда не видел «Int?» Синтаксис, прежде чем увидеть его здесь, но независимо от того, как я ищу, я не могу найти предыдущий пост, и это сводит меня с ума.
Возможно, я ел забавные грибы случайно, но если это не так, может ли кто-нибудь указать на предыдущий пост, если они смогут его найти или объяснить заново?Мой поиск stackoverflow, по-видимому, слишком низок....
Решение
инт?это сокращение от Nullable<int>
.
Этот возможно, это тот пост, который вы искали.
Другие советы
инт?является нулевым.
MSDN: Использование типов, допускающих значение NULL (Руководство по программированию на C#)
инт?это то же самое, что и Nullable.Это позволяет вам иметь «нулевые» значения в вашем int.
int принадлежит System.ValueType и не может иметь значение null.При работе с базами данных или другими типами, где элементы могут иметь нулевое значение, может быть полезно проверить, является ли элемент нулевым.Это когда int?вступает в игру.инт?— это тип, допускающий значение NULL, который может иметь значения в диапазоне от -2147483648 до 2147483648 и ноль.
Ссылка: https://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx
символ ?после int означает, что оно может иметь значение NULL.
?Символ обычно используется в ситуациях, когда переменная может принимать нулевое или целое число или, альтернативно, возвращать целое или нулевое значение.
Надеюсь, контекст использования поможет.Таким образом, вы не ограничены исключительно работой с целыми числами.
Вы можете использовать его, когда ожидаете нулевого значения в своем целом, особенно когда вы используете Casting Ex:
x= (int)y;
если y = null, то возникнет ошибка.вам нужно использовать:
x = (int?)y;
Int не может принять значение null, но если разработчик использует int?Затем вы храните NULL в int, как int i = null;// не принимать int?я = ноль;// он работает в основном для получения страниц в Pagelist MVC