¿Qué es la comparación nula o predeterminada del argumento genérico en C#?

¿Qué es la comparación nula o predeterminada del argumento genérico en C#?
Cuando se trabaja con genéricos en C#, es importante comprender cómo funciona la comparación nula o predeterminada con argumentos genéricos. En C#, NULL representa una referencia a No Object, mientras que el valor predeterminado representa el valor predeterminado de un tipo de datos, este artículo discutirá cómo realizar comparaciones NULL o predeterminadas en argumentos genéricos en C#, junto con un ejemplo de código.

Comparación nula del argumento genérico

Al comparar los argumentos genéricos para NULL, usamos el operador == que verifica si dos operandos son iguales. Cuando se usa el operador == para comparar argumentos genéricos, es importante asegurarse de que el tipo de argumento sea un tipo de referencia. El operador == se usa para comparar referencias, aquí hay un ejemplo de una comparación nula de un argumento genérico en C#:

Público estático Bool isnull(T arg) donde t: clase

return arg == nulo;

El código anterior usa el operador == para verificar si el argumento es nulo o no y el dónde T: clase La restricción asegura que el tipo de argumento sea un tipo de referencia, lo que nos permite usar el operador == para comparar las referencias.

Comparación predeterminada del argumento genérico

Al comparar argumentos genéricos para el valor predeterminado, usamos Igualdad comparador.Por defecto.Iguales método. El Igualdad comparador.Por defecto La propiedad devuelve el comparador de igualdad predeterminado para el tipo especificado por el argumento genérico. El método igual del comparador de igualdad predeterminado se usa para comparar dos operandos para la igualdad, aquí hay un ejemplo de una comparación predeterminada de un argumento genérico en C#:

Pública estática bool isdefault(T arg)

return EqualityComparer.Por defecto.Iguales (arg, predeterminado);

El código anterior usa el Igualdad comparador.Por defecto.Igual () función para verificar si el argumento es igual al valor predeterminado de su tipo de datos. La palabra clave predeterminada se usa para representar el valor predeterminado de un tipo de datos.

Ejemplo: Uso de NULL y predeterminado en C#

Aquí hay un ejemplo de código completo que demuestra la comparación nula y predeterminada del argumento genérico en C#:

usando el sistema;
Uso del sistema.Colecciones.Genérico;
programa de clase pública

Public static void main ()

cadena str = nulo;
int i = default;
Consola.WriteLine ($ "isNull: isNull (str)"); // Verdadero
Consola.WriteLine ($ "isDefault: isDefault (i)"); // Verdadero

Público estático Bool isnull(T arg) donde t: clase

return arg == nulo;

Pública estática bool isdefault(T arg)

return EqualityComparer.Por defecto.Iguales (arg, predeterminado);

El código C# anterior define una aplicación de consola que contiene dos métodos genéricos. El primer método "Es nulo" toma un argumento genérico "Arg" y devuelve un valor booleano que indica si "Arg" es nulo o no, con una restricción que "T" Debe ser un tipo de referencia.

El segundo método, "ISDEFAULT" toma un argumento genérico "Arg" y devuelve un valor booleano que indica si "Arg" es el valor predeterminado para su tipo, sin restricciones en "T". Las funciones principales prueban ambos métodos con una cadena nula y un valor entero predeterminado, respectivamente:

Conclusión

Cuando se trabaja con genéricos en C#, es importante comprender cómo funciona la comparación nula o predeterminada con argumentos genéricos. Para la comparación nula, usamos el operador == para comparar las referencias, y para la comparación predeterminada, usamos el Igualdad comparador.Por defecto.Iguales Método para comparar valores. Puede escribir un código más eficiente y efectivo entendiendo cómo realizar comparaciones nulas o predeterminadas en argumentos genéricos.