"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Se puede utilizar TRATPARSE para la verificación de tipo genérico en C#?

¿Se puede utilizar TRATPARSE para la verificación de tipo genérico en C#?

Publicado el 2025-03-12
Navegar:281

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

que extiende la validación de tipo genérico con 'TryParse'

con la intención de verificar si una cadena dada se adhiere a un tipo predefinido, se está haciendo un intento para desarrollar una extensión genérica que utilice 'TryParse'. Sin embargo, este esfuerzo ha encontrado un obstáculo de compilación ya que 'TryParse' permanece sin resolver. Por lo tanto, surge la pregunta sobre la viabilidad de dicha implementación.

Una solución potencial implica aprovechar la clase typedescriptor, un mecanismo diseñado específicamente para este propósito. Al incorporar esta clase, se puede adoptar un enfoque más robusto:

público estático t convertir (esta entrada de cadena) { intentar { Var convertidor = typedescriptor.getConverter (typeof (t)); if (convertidor! = nulo) { // Cast ConvertFromString (texto de cadena): Objeto a (t) return (t) converter.ConvertFromString (entrada); } devolver el valor predeterminado (t); } Catch (NotSupportedException) { devolver el valor predeterminado (t); } }

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 la necesidad de excepciones, fomentando una solución más refinada y eficiente.
  • retiene la flexibilidad de aceptar un tipo específico en lugar de ser genéricos, permitiendo una mayor Versatilidad.
  • En última instancia, esta solución revisada aborda efectivamente el desafío inicial, proporcionando un medio para determinar la validez de una cadena de entrada dada contra un tipo predefinido.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3