Dans une tentative de création d'une méthode d'extension générique pour vérifier les valeurs de chaîne, vous avez rencontré un problème avec « TryParse » n'étant défini dans aucun interface et recherché une solution alternative.
Approche alternative utilisant TypeDescriptor
La classe TypeDescriptor fournit un moyen de récupérer un convertisseur de type pour un type de données donné. Ce convertisseur peut être utilisé pour convertir des chaînes vers et depuis d’autres types. Voici une version mise à jour de votre code :
public static bool Is(this string input, Type targetType) { try { TypeDescriptor.GetConverter(targetType).ConvertFromString(input); return true; } catch { return false; } }
Dans cette version, vous pouvez transmettre n'importe quel type cible et il tentera de convertir la chaîne en ce type à l'aide du convertisseur approprié. Si la conversion réussit, la méthode renvoie true ; sinon, il renvoie false.
Exceptions et alternatives
Bien que l'approche basée sur les exceptions fonctionne, vous préférerez peut-être une option plus robuste. Au lieu d'utiliser des exceptions, vous pouvez renvoyer une valeur Nullable
Vous pouvez également créer des surcharges pour les types courants, tels que int, double et DateTime, et définir une logique personnalisée pour chaque type. Cela éliminerait le besoin d'une implémentation générique et fournirait des conversions plus efficaces et plus sûres.
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!