535 votes

Comment faire pour convertir int nullable en int

Comment faire pour convertir nullable à ?

Supposons que j’ai 2 type d’int comme ci-dessous :

Je tiens à assgin valeur de v1 à v2. ``erreur se produit. Comment convertir de v1 à v2 ?

705voto

KeithS Points 36130

Les autres réponses sont tout à fait correct; je voulais juste ajouter un peu de nettoyant:

v2 = v1 ?? default(int);

Tout Nullable<T> est implicitement convertible pour son T, à CONDITION que la totalité de l'expression évaluée ne peut jamais résulter en une valeur null à l'affectation à un ValueType. Ainsi, le null-coalescence de l'opérateur ?? est juste la syntaxe de sucre pour l'opérateur ternaire:

v2 = v1 == null ? default(int) : v1;

...qui est à son tour de la syntaxe de sucre pour un if/else:

if(v1==null)
   v2 = default(int);
else
   v2 = v1;

Aussi, comme de .NET 4.0, Nullable<T> a un "GetValueOrDefault()" la méthode, qui est un null-safe getter que, fondamentalement, effectue les nuls-la coalescence indiqué ci-dessus, de sorte que cela fonctionne aussi:

v2 = v1.GetValueOrDefault();

189voto

Comme ça

116voto

e36M3 Points 1903

Vous pouvez utiliser la propriété Value de cession.

54voto

Arturo Martinez Points 1846

Vous ne pouvez pas faire si v1 est null, mais vous pouvez vérifier auprès d’un opérateur.

54voto

Guffa Points 308133

Si vous savez que a une valeur, vous pouvez utiliser le propriété :

À l’aide de la `` méthode assigne la valeur s’il n’y en a une, sinon la valeur par défaut pour le type, ou une valeur par défaut que vous spécifiez :

Vous pouvez utiliser le propriété pour vérifier si a une valeur :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X