"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > O TryParse pode ser usado para verificação do tipo genérico em C#?

O TryParse pode ser usado para verificação do tipo genérico em C#?

Postado em 2025-03-12
Navegar:417

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

estendendo a validação do tipo genérico com 'TryParse'

com a intenção de verificar se uma determinada string adere a um tipo predefinido, está sendo feita uma tentativa de desenvolver uma extensão genérica utilizando 'tentativa'. No entanto, esse esforço encontrou um obstáculo de compilação como 'Tryparse' permanece sem solução. Portanto, surge a pergunta quanto à viabilidade de tal implementação. Ao incorporar esta classe, uma abordagem mais robusta pode ser adotada:

public static t convert (esta entrada da string) { tentar { var converter = typeDescriptor.getConverter (typeof (t)); if (conversor! = nulo) { // Cast ConvertFromString (texto da string): objeto para (t) return (t) converter.convertFromString (entrada); } retornar padrão (t); } Catch (NotSupportEdException) { retornar padrão (t); } }

Esta abordagem atualizada possui várias vantagens:

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);
    }
}
elimina a necessidade de exceções, promovendo uma solução mais refinada e eficiente. Versatility.

    em última análise, essa solução revisada aborda efetivamente o desafio inicial, fornecendo um meio de determinar a validade de uma determinada sequência de entrada contra um tipo predefinido.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3