Heim > Backend-Entwicklung > C++ > Wie kann ich beim Abrufen von Datenbankdatensätzen Nullable-Typen als generische Parameter behandeln?

Wie kann ich beim Abrufen von Datenbankdatensätzen Nullable-Typen als generische Parameter behandeln?

Patricia Arquette
Freigeben: 2025-01-05 19:49:41
Original
795 Leute haben es durchsucht

How Can I Handle Nullable Types as Generic Parameters When Retrieving Database Records?

Auflösen von NULL-fähigen Typeinschränkungen in generischen Parametern

Beim Versuch, einen NULL-fähigen Typ als generischen Parameter in einer Methode zuzuweisen, die den Abruf von Datenbankdatensätzen verarbeitet, wie etwa GetValueOrNull(dieser DbDataRecord-Reader, Zeichenfolge ColumnName) kann es zu Einschränkungen im Zusammenhang mit Nullable kommen Strukturen.

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:

  • Ändern Sie die Rückgabe Typ zu Nullable um nullfähige Werte aufzunehmen.
  • Geben Sie den nicht nullbaren Basistyp im Methodenaufruf an, wie im folgenden Code dargestellt:
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;
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage