Nullable-Typen sind gut, aber nur für Typen, die von vornherein nicht nullable sind.
Um einen Typ „nullable“ zu machen, hängen Sie ein Fragezeichen an den Typ an, zum Beispiel:
int? value = 5;
Ich würde auch empfehlen, die Datei "as
" anstelle von Casting. Sie können das Schlüsselwort "as" nur für nullable-Typen verwenden, stellen Sie also sicher, dass Sie Dinge umwandeln, die bereits nullable sind (wie Strings) oder verwenden Sie nullable-Typen wie oben erwähnt. Der Grund dafür ist
- Wenn ein Typ nullable ist, wird die Datei "
as
" Schlüsselwort gibtnull
zurück wenn ein WertDBNull
ist . - Es ist ein bisschen schneller als das Casten, allerdings nur in bestimmten Fällen. Dies allein ist nie ein ausreichender Grund,
as
zu verwenden , aber in Verbindung mit dem obigen Grund ist es nützlich.
Ich würde empfehlen, so etwas zu tun
DataRow row = ds.Tables[0].Rows[0];
string value = row as string;
Im obigen Fall, wenn row
kommt als DBNull
zurück , dann value
wird zu null
anstatt eine Ausnahme auszulösen. Beachten Sie, dass, wenn Ihre DB-Abfrage die zurückgegebenen Spalten/Typen ändert, mit as
führt dazu, dass Ihr Code stillschweigend fehlschlägt und Werte einfach machen null
Anstatt die entsprechende Ausnahme auszulösen, wenn falsche Daten zurückgegeben werden, wird empfohlen, dass Sie Tests durchführen, um Ihre Abfragen auf andere Weise zu validieren, um die Datenintegrität sicherzustellen, wenn sich Ihre Codebasis weiterentwickelt.