Maison > développement back-end > C++ > Comment puis-je gérer les types nullables en tant que paramètres génériques lors de la récupération des enregistrements de base de données ?

Comment puis-je gérer les types nullables en tant que paramètres génériques lors de la récupération des enregistrements de base de données ?

Patricia Arquette
Libérer: 2025-01-05 19:49:41
original
803 Les gens l'ont consulté

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

Résolution des limitations des types nullables dans les paramètres génériques

Lors de la tentative d'attribution d'un type nullable comme paramètre générique dans une méthode qui gère la récupération des enregistrements de base de données, telle que GetValueOrNull(ce lecteur DbDataRecord, chaîne columnName), vous pouvez rencontrer des limitations liées à Nullable structures.

Initialement, une contrainte de classe a été utilisée, permettant le retour de null. Cependant, les types nullables, tels que int?, sont des structures interdites en tant que types de référence requis par les contraintes de classe.

Pour remédier à cela, remplacez la contrainte par une structure autorisée pour les valeurs de retour non nullables. Cependant, lors de la tentative d'attribution du type nullable, une erreur indiquait que des types de valeur non nullables étaient requis.

Pour surmonter ces limitations, envisagez la stratégie suivante :

  • Modifiez le retour tapez sur Nullable pour prendre en charge les valeurs nullables.
  • Spécifiez le type de base non nullable dans l'appel de méthode, comme indiqué dans le code ci-dessous :
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;
}
Copier après la connexion

En adoptant cette approche, vous responsabilisez le Méthode GetValueOrNull pour gérer les types nullables, garantissant une récupération transparente des valeurs de la base de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal