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
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 :
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; }
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!