Maison > développement back-end > C++ > Comment puis-je implémenter une méthode TryParse générique en C# ?

Comment puis-je implémenter une méthode TryParse générique en C# ?

Mary-Kate Olsen
Libérer: 2025-01-04 05:07:43
original
633 Les gens l'ont consulté

How Can I Implement a Generic TryParse Method in C#?

TryParse générique : Explorer des approches alternatives

Essayer d'implémenter une extension générique à l'aide de « TryParse » pour valider les conversions de chaînes vers un type donné peut poser des problèmes défis dus au manque de « TryParse » comme méthode d’interface. Cet article explore des solutions potentielles pour surmonter cet obstacle.

Une approche suggérée par la communauté utilise la classe TypeDescriptor. Cette classe fournit un moyen d'obtenir un convertisseur pour un type spécifique. En appelant la méthode ConvertFromString sur le convertisseur récupéré, on peut convertir la chaîne d'entrée dans le type souhaité. Cette méthode gère également les exceptions qui peuvent survenir lors de la conversion.

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

Alternativement, on peut modifier le code pour accepter un type cible comme paramètre, éliminant ainsi le besoin de génériques. Cette approche offre plus de contrôle sur le processus de conversion.

public static bool Is(this string input, Type targetType)
{
    try
    {
        TypeDescriptor.GetConverter(targetType).ConvertFromString(input);
        return true;
    }
    catch
    {
        return false;
    }
}
Copier après la connexion

Bien que l'approche basée sur les exceptions puisse sembler non conventionnelle, elle offre une solution viable au défi que représente la réalisation de conversions de chaînes génériques.

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