¿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.
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.