Conversion de chaîne générique avec TryParse
Dans le but de créer une extension générique qui utilise « TryParse » pour valider les chaînes par rapport à des types spécifiques, le le code suivant a été rencontré :
public static bool Is<T>(this string input) { T notUsed; return T.TryParse(input, out notUsed); }
Ce code ne parvient pas à se compiler en raison de l'impossibilité de résoudre le Symbole « TryParse ». 'TryParse' ne fait partie d'aucune interface, ce qui pose la question de savoir si cette fonctionnalité est réalisable.
Solution alternative utilisant TypeDescriptor
Une approche consiste à utiliser la classe TypeDescriptor :
public static bool Is(this string input, Type targetType) { try { TypeDescriptor.GetConverter(targetType).ConvertFromString(input); return true; } catch { return false; } }
Cette méthode transmet explicitement le type cible, évitant l'utilisation de génériques et autorisant le type d'exécution conversion. TypeDescriptor fournit des fonctionnalités pour convertir des chaînes en différents types, vous permettant de valider les chaînes par rapport aux types souhaités.
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!