Je suis sûr à 90% que j'ai déjà vu cette réponse sur stackoverflow, en fait je n'avais jamais vu le "int?" syntaxe avant de la voir ici, mais peu importe la façon dont je cherche, je ne trouve pas le post précédent, et ça me rend folle.
Il est possible que je mange des champignons amusants par accident, mais si ce n'est pas le cas, quelqu'un peut-il indiquer le message précédent s'il peut le trouver ou le réexpliquer? Mon stackoverflow search-fu est apparemment trop bas ....
int? est un raccourci pour Nullable<int>
.
Ceci peut être le poste que vous cherchiez.
int? est Nullable.
MSDN: Utilisation de types nullables (Guide de programmation C #)
int? est la même chose que Nullable. Cela vous permet d'avoir des valeurs "null" dans votre int.
int appartient à System.ValueType et ne peut pas avoir la valeur null. Lorsqu'il s'agit de bases de données ou d'autres types où les éléments peuvent avoir une valeur null, il peut être utile de vérifier si l'élément est null. C'est quand int? entre en jeu. int? est un type nullable pouvant avoir des valeurs allant de -2147483648 à 2147483648 et null.
Référence: https://msdn.Microsoft.com/en-us/library/1t3y8s4s.aspx
le symbole ? après que int signifie qu'il peut être annulé.
Le ? Le symbole est généralement utilisé dans des situations dans lesquelles la variable peut accepter une valeur NULL ou un nombre entier ou encore renvoyer un nombre entier ou une valeur NULL.
J'espère que le contexte d'utilisation aide. De cette façon, vous n'êtes pas obligé de traiter uniquement des entiers.
Int ne peut pas accepter null, mais si le développeur utilise int? alors vous stockez null dans int comme int i = null; // ne pas accepter int? i = nul; // son fonctionnement est principalement utilisé pour la pagination dans MVC Pagelist
vous pouvez l'utiliser lorsque vous attendez une valeur nulle dans votre entier, en particulier lorsque vous utilisez CASTING ex:
x= (int)y;
si y = null, alors vous aurez une erreur. .__ vous devez utiliser:
x = (int?)y;