Cómo usar donde

Cómo usar donde
Las restricciones de tipo genérico en C# permiten a los desarrolladores definir el conjunto de tipos que un parámetro de tipo genérico puede representar. Esta característica permite que el compilador aplique la seguridad del tipo y evite los 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 el "dónde" La restricción está en C# y cómo usarlo en su código.

¿Cuál es la restricción de "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 utilizando el "dónde" Palabra clave seguida del parámetro de tipo y la restricción, la sintaxis para usar el "dónde" La restricción es la siguiente:

nombre de clase de clase pública 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" La 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;
Minvalue de clase pública donde t: struct, icomparable, iconvertible

Public t getminvalue (t [] matriz)

if (array == null || array.Longitud == 0)
arrojar una nueva ArgumentException ("La matriz no puede ser nula o vacía");

T min = matriz [0];
para (int i = 1; i < array.Length; i++)
if (array [i].Compareto (min) < 0)
min = matriz [i];


regresar min;


programa de clase pública

Public static void main ()

int [] intarray = 1, 2, 3, 4, 5;
MinValue intminvalue = nuevo minvalue();
int intmin = intminValue.GetMinValue (Intarray);
Consola.WriteLine ("Valor mínimo de Intarray: 0", intmin);
Double [] DoubleArray = 1.1, 2.2, 3.3, 4.4, 5.5;
MinValue DoubeMemInvalue = nuevo minvalue();
Doble Doublemin = DoubleminValue.GetMinValue (DoubleArray);
Consola.WriteLine ("Valor mínimo de DoubleArray: 0", Doublemin);

Aquí, hemos definido una clase genérica "Minvalue" que acepta un parámetro de tipo "T" y devuelve el valor mínimo de una matriz de valores. A continuación, hemos usado 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 asegura 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 del tipo y evitar errores durante el tiempo de ejecución. Al usar esta restricción, puede especificar el conjunto de tipos que un parámetro de tipo genérico puede representar. Este artículo ha proporcionado una visión general del "dónde" restricción en C# y demostró cómo usarlo con un código.