c'est peut-être une question simple mais j'essaie toute la méthode de conversion! et il a encore une erreur! voulez-vous me aider?
décimal? (décimal nullable) en décimal
Il y a plein d'options ...
decimal? x = ...
decimal a = (decimal)x; // works; throws if x was null
decimal b = x ?? 123M; // works; defaults to 123M if x was null
decimal c = x.Value; // works; throws if x was null
decimal d = x.GetValueOrDefault(); // works; defaults to 0M if x was null
decimal e = x.GetValueOrDefault(123M); // works; defaults to 123M if x was null
object o = x; // this is not the ideal usage!
decimal f = (decimal)o; // works; throws if x was null; boxes otherwise
Essayez d'utiliser le ??
opérateur:
decimal? value=12;
decimal value2=value??0;
0 est la valeur souhaitée lorsque le decimal?
est nul.
Vous n'avez pas besoin de convertir un type nullable pour obtenir sa valeur.
Vous profitez simplement des propriétés HasValue
et Value
exposées par Nullable<T>
.
Par exemple:
Decimal? largeValue = 5830.25M;
if (largeValue.HasValue)
{
Console.WriteLine("The value of largeNumber is {0:C}.", largeValue.Value);
}
else
{
Console.WriteLine("The value of largeNumber is not defined.");
}
Alternativement, vous pouvez utiliser opérateur de coalescence nul en C # 2.0 ou version ultérieure comme raccourci.
Cela dépend de ce que vous voulez faire si le decimal?
est null
, car un decimal
ne peut pas être null
. Si vous voulez par défaut que 0, vous pouvez utiliser ce code (en utilisant opérateur de coalescence nul):
decimal? nullabledecimal = 12;
decimal myDecimal = nullabledecimal ?? 0;