593 Stimmen

Wie konvertiert man C# nullable int in int

Wie konvertiere ich eine nullable int zu einer int ? Angenommen, ich habe 2 Arten von int wie unten:

int? v1;  
int v2; 

Ich möchte zuweisen v1 Wert auf v2 . v2 = v1; wird einen Fehler verursachen. Wie kann ich konvertieren v1 a v2 ?

4 Stimmen

Was ist das gewünschte Verhalten, wenn v1 es null ?

15voto

Die Umwandlung von Int nullable in int kann folgendermaßen erfolgen:

v2=(int)v1;

14voto

akesfeden Punkte 440

In C# 7.1 und höher kann der Typ mit Hilfe der Methode default wörtlich anstelle der default Betreiber so kann es wie folgt geschrieben werden:

v2 = v1 ?? default;

12voto

FIre Panda Punkte 6321

Sie könnten Folgendes tun

v2 = v1.HasValue ? v1.Value : v2;

12voto

Rev Punkte 2236

Es ist möglich mit v2 = Convert.ToInt32(v1);

11voto

JaredPar Punkte 699699

Eine einfache Umrechnung zwischen v1 y v2 ist nicht möglich, weil v1 hat einen größeren Wertebereich als v2 . Es ist alles v1 halten kann, plus die null Zustand. Um zu konvertieren, müssen Sie explizit angeben, welcher Wert in int wird verwendet, um die null Zustand. Der einfachste Weg, dies zu tun, ist die ?? Betreiber

v2 = v1 ?? 0;  // maps null of v1 to 0

Dies kann auch in Langform geschehen

int v2;
if (v1.HasValue) {
  v2 = v1.Value;
} else {
  v2 = 0;
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X