Maison > développement back-end > C++ > « TryParse » peut-il être utilisé pour la validation de type générique en C# ?

« TryParse » peut-il être utilisé pour la validation de type générique en C# ?

Linda Hamilton
Libérer: 2025-01-03 16:28:38
original
157 Les gens l'ont consulté

Can `TryParse` Be Used for Generic Type Validation in C#?

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);
    }
}
Copier après la connexion

Cette approche mise à jour présente plusieurs avantages :

  • Elle élimine le besoin d'exceptions, favorisant une approche plus raffinée et solution efficace.
  • Il conserve la flexibilité d’accepter un type spécifique plutôt que de s’appuyer sur des génériques, ce qui permet une plus grande polyvalence.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal