Яка різниця між "int?" та 'int' в C #?


84

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

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

Відповіді:





7

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

Довідково: https://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx


0

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

? Символ зазвичай використовується в ситуаціях, коли змінна може прийняти нуль або ціле число, або ж повернути ціле чи нульове значення.

Сподіваюся, контекст використання допомагає. Таким чином, ви не обмежуєтесь лише обробкою цілих чисел.


0

Ви можете використовувати його, коли ви очікуєте нульового значення у цілому цілому, особливо коли ви використовуєте CASTING ex:

x= (int)y;

якщо y = null, тоді у вас буде помилка. Ви повинні використовувати:

x = (int?)y;

0

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


Здається, це говорить те саме, що й інша відповідь.
JJJ
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.