Beim Versuch, einen NULL-fähigen Typ als generischen Parameter in einer Methode zuzuweisen, die den Abruf von Datenbankdatensätzen verarbeitet, wie etwa GetValueOrNull
Anfangs wurde eine Klasseneinschränkung verwendet, die die Rückgabe von Null ermöglichte. Nullable-Typen wie int? sind jedoch Strukturen, die aufgrund von Klasseneinschränkungen als Referenztypen verboten sind.
Um dies zu beheben, ändern Sie die Einschränkung in eine Struktur, die für nicht nullbare Rückgabewerte zulässig ist. Beim Versuch, den nullbaren Typ zuzuweisen, wurde jedoch ein Fehler angezeigt, der darauf hinwies, dass nicht nullbare Werttypen erforderlich waren.
Um diese Einschränkungen zu überwinden, ziehen Sie die folgende Strategie in Betracht:
static void Main(string[] args) { int? i = GetValueOrNull<int>(null, string.Empty); } public static Nullable<T> GetValueOrNull<T>(DbDataRecord reader, string columnName) where T : struct { object columnValue = reader[columnName]; if (!(columnValue is DBNull)) return (T)columnValue; return null; }
Durch die Übernahme dieses Ansatzes ermöglichen Sie die GetValueOrNull-Methode zur Verarbeitung nullfähiger Typen, um einen nahtlosen Abruf von Datenbankwerten sicherzustellen.
Das obige ist der detaillierte Inhalt vonWie kann ich beim Abrufen von Datenbankdatensätzen Nullable-Typen als generische Parameter behandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!