vielleicht ist es eine einfache Frage, aber ich versuche alle Konvertierungsmethode! und es hat immer noch fehler! könntest du mir helfen?
dezimal? (nullable decimal) bis decimal
Es gibt viele Möglichkeiten ...
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
Versuchen Sie es mit dem ??
Operator:
decimal? value=12;
decimal value2=value??0;
0 ist der gewünschte Wert, wenn decimal?
ist Null.
Sie müssen nicht convert einen nullfähigen Typ angeben, um seinen Wert zu erhalten.
Sie nutzen einfach die Eigenschaften HasValue
und Value
, die von Nullable<T>
.
Beispielsweise:
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.");
}
Alternativ können Sie den Operator Null-Koaleszenz in C # 2.0 oder höher als Verknüpfung verwenden.
Es hängt davon ab, was Sie tun möchten, wenn der decimal?
ist null
, da ein decimal
nicht null
sein kann. Wenn Sie den Standardwert auf 0 setzen möchten, können Sie diesen Code verwenden (mit dem Operator null coalescing):
decimal? nullabledecimal = 12;
decimal myDecimal = nullabledecimal ?? 0;