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
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 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!