Extension de la validation de type générique avec 'TryParse'
Dans le but de vérifier si une chaîne donnée adhère à un type prédéfini, une tentative est en cours pour développer une extension générique utilisant « TryParse ». Cependant, cet effort s'est heurté à un obstacle de compilation car « TryParse » n'est toujours pas résolu.
Le nœud de ce problème réside dans le fait que « TryParse » n'est encapsulé dans aucune interface reconnaissable. La question se pose donc de savoir si une telle implémentation est réalisable.
Une solution potentielle consiste à exploiter la classe TypeDescriptor, un mécanisme conçu spécifiquement à cet effet. En incorporant cette classe, une approche plus robuste peut être adoptée :
public static T Convert<T>(this string input) { try { var converter = TypeDescriptor.GetConverter(typeof(T)); if (converter != null) { // Cast ConvertFromString(string text) : object to (T) return (T)converter.ConvertFromString(input); } return default(T); } catch (NotSupportedException) { return default(T); } }
Cette approche mise à jour présente plusieurs avantages :
En fin de compte, cette solution révisée répond efficacement au défi initial, en fournissant un moyen de vérifier la validité d'une chaîne d'entrée donnée par rapport à un type prédéfini.
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!