Zuverlässige Nullable-Werttypprüfungen in C#
Die Überprüfung der NULL-Zulässigkeit von Werttypobjekten in C# kann schwierig sein. Obwohl die Reflexion eine Methode bietet, ist sie aufgrund ihrer Einschränkungen beim Umgang mit geschachtelten Werttypen unzuverlässig. Eine robustere Lösung nutzt Generika, um die Nullbarkeit direkt zu bewerten:
Der folgende Codeausschnitt bestimmt effektiv, ob ein bestimmtes Werttypobjekt nullfähig ist:
<code class="language-csharp">static bool IsNullable<T>(T obj) { // Check for null (handles both reference and nullable value types) if (obj == null) return true; // Check if the type is a value type Type type = typeof(T); if (!type.IsValueType) return true; // Reference types are always nullable // Check if it's a Nullable<T> type if (Nullable.GetUnderlyingType(type) != null) return true; // Otherwise, it's a non-nullable value type return false; }</code>
Diese generische Methode IsNullable<T>
nimmt ein Objekt vom Typ T
als Eingabe und gibt true
zurück, wenn es nullbar ist (entweder ein Referenztyp oder ein Nullable<T>
-Werttyp), andernfalls false
. Es geht direkt auf die Mängel reflexionsbasierter Ansätze ein. Beachten Sie, dass diese Methode Referenztypen weiterhin korrekt verarbeitet und true
zurückgibt, da sie von Natur aus nullfähig sind. Weitere Informationen zum Arbeiten mit nullfähigen Typen finden Sie in der offiziellen Microsoft-Dokumentation.
Das obige ist der detaillierte Inhalt vonWie kann ich zuverlässig überprüfen, ob ein Werttypobjekt in C# nullbar ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!