Maison > développement back-end > C++ > Comment puis-je utiliser des types nullables comme paramètres génériques en C# ?

Comment puis-je utiliser des types nullables comme paramètres génériques en C# ?

Susan Sarandon
Libérer: 2025-01-05 10:11:40
original
200 Les gens l'ont consulté

How Can I Use Nullable Types as Generic Parameters in C#?

Types nullables en tant que paramètres génériques

En C#, il est possible de définir un type nullable en tant que paramètre générique, ce qui permet une certaine flexibilité lors du traitement des valeurs nullables. Cependant, des contraintes spécifiques doivent être prises en compte pour assurer la compatibilité.

Le code fourni visait à récupérer une valeur nullable dans une base de données à l'aide de la fonction GetValueOrNull. Initialement, le paramètre générique était contraint à être une classe, ce qui entraînait l'erreur int? est une structure.

Pour résoudre ce problème, la contrainte a été remplacée par une structure. Cependant, une autre erreur s'est produite, indiquant que le type nullable devait être non nullable.

La solution consiste à modifier le type de retour de la fonction GetValueOrNull en Nullable et en l'invoquant avec un paramètre non nullable, comme démontré :

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 suivant ces contraintes, les types nullables peuvent être utilisés efficacement comme paramètres génériques, offrant flexibilité et gestion des valeurs nullables dans le code.

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