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 ?
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 ?
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();
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.