Cómo usar where (Restricción de tipo genérico)

Como Usar Where Restriccion De Tipo Generico



Las restricciones de tipo genérico en C# permiten a los desarrolladores definir el conjunto de tipos que puede representar un parámetro de tipo genérico. Esta función permite que el compilador aplique la seguridad de tipos y evita errores que pueden ocurrir durante el tiempo de ejecución. Una de las restricciones más utilizadas es la 'dónde' restricción, este artículo explicará lo que la 'dónde' la restricción está en C# y cómo usarla en su código.

¿Qué es la restricción 'dónde'?

El 'dónde' La restricción es una restricción de tipo genérico en C# que permite a los desarrolladores especificar el parámetro de tipo que puede representar un tipo genérico. La restricción se especifica mediante el 'dónde' palabra clave seguida del parámetro de tipo y la restricción, la sintaxis para usar el 'dónde' restricción es la siguiente:

clase pública ClassName < T > donde T : restricción

{

  // Implementación de clase

}

Aquí el 'Nombre de la clase' representa el nombre de la clase con un parámetro de tipo genérico 'T' . El 'dónde' palabra clave especifica la restricción para el parámetro de tipo, y el 'restricción' es el tipo que debe representar el parámetro de tipo.







Tomemos un ejemplo de una clase genérica que acepta un parámetro de tipo y devuelve el valor mínimo de una matriz de valores. Aquí el código usa el 'dónde' restricción para especificar que el parámetro de tipo debe ser un tipo numérico:



usando el sistema ;

clase pública MinValue < T > donde T : estructura , IComparable , Descapotable

{

T pública GetMinValue ( T [ ] formación )

    {

      si ( formación == nulo || formación. Longitud == 0 ) {

lanza una nueva ArgumentException ( 'La matriz no puede ser nula o vacía' ) ;

      }

T min = formación [ 0 ] ;

      para ( En t i = 1 ; i < formación. Longitud ; i ++ ) {

        si ( formación [ i ] . Comparar con ( min ) < 0 ) {

min = formación [ i ] ;

        }

      }

      devolver min ;

    }

}

Programa de clase pública

{

público estático vacío Principal ( )

    {

      En t [ ] intArray = { 1 , 2 , 3 , 4 , 5 } ;

valor mínimo < En t > intMinValue = nuevo valor mínimo < En t > ( ) ;

      En t intMin = intMinValue. ObtenerValorMin ( intArray ) ;

Consola. Línea de escritura ( 'Valor mínimo de intArray: {0}' , intMin ) ;

      doble [ ] matrizdoble = { 1.1 , 2.2 , 3.3 , 4.4 , 5.5 } ;

valor mínimo < doble > Valor mínimo doble = nuevo valor mínimo < doble > ( ) ;

      doble dobleMin = dobleValorMin. ObtenerValorMin ( matrizdoble ) ;

Consola. Línea de escritura ( 'Valor mínimo de doubleArray: {0}' , dobleMin ) ;

}

}

Aquí, hemos definido una clase genérica “Valor mínimo” que acepta un parámetro de tipo 'T' y devuelve el valor mínimo de una matriz de valores. A continuación, hemos utilizado el 'dónde' restricción para especificar que el parámetro de tipo debe ser una estructura, implementar la interfaz IComparable e implementar la interfaz IConvertible. Esta restricción garantiza que solo se permitan tipos numéricos como parámetros de tipo.



  Forma, rectángulo Descripción generada automáticamente





Conclusión

El 'dónde' La restricción en C# es una característica poderosa que permite a los desarrolladores hacer cumplir la seguridad de tipo y evitar errores durante el tiempo de ejecución. Mediante el uso de esta restricción, puede especificar el conjunto de tipos que puede representar un parámetro de tipo genérico. Este artículo ha proporcionado una visión general de la 'dónde' restricción en C# y demostró cómo usarlo con un código.