"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > TryParse peut-il être utilisé pour la vérification de type générique en C #?

TryParse peut-il être utilisé pour la vérification de type générique en C #?

Publié le 2025-03-12
Parcourir:155

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

Extension de la validation de type générique avec 'TryParse'

Dans l'intention de vérifier si une chaîne donnée adhère à un type prédéfini, une tentative est faite pour développer une extension générique en utilisant 'TryParse'. Cependant, cet effort a rencontré un obstacle de compilation car «TryParse» reste non résolu.

Le nœud de cette question réside dans le fait que «TryParse» n'est pas encapsulé dans aucune interface reconnaissable. Par conséquent, la question se pose quant à la faisabilité d'une telle implémentation.

Une solution potentielle implique de tirer parti de la classe dyscriptrice, 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(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 offre plusieurs avantages:

  • il élimine le besoin d'exceptions, favorisant une solution plus raffinée et efficace. polyvalence.
  • En fin de compte, cette solution révisée aborde efficacement le défi initial, fournissant un moyen de déterminer la validité d'une chaîne d'entrée donnée contre un type prédéfini.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3