DE .NET, SQLSERVER Y MÁS, APRENDE CONMIGO!✔

Desarrollo de todo tipo de aplicaciones y Administración de Base de datos con Tecnología Microsoft


UNETE

Nullable en C#

0

 

Nullable en C#

A las variables no se les puede asignar un valor nulo en C#, por lo que para superar esto, C# proporciona una característica especial, que asigna un valor nulo a una variable denominada tipo anulable, y no funciona con el tipo de referencia porque ya hay un valor nulo. presente, solo funciona con el tipo que acepta valores NULL, que es una instancia de System.Nullable<T>struct donde T representa tipos de valores que no aceptan valores NULL, como tipo booleano, tipo entero, tipo de punto flotante, etc.

 

Sintaxis:

Nullable<data_type> variable_name = null;

La sintaxis anterior representa el tipo de datos anulable en C#. La palabra clave anulable representa el tipo anulable que es una instancia de System.Nullable<T>struct donde T representa tipos de valores no anulables como tipo booleano, tipo entero, tipo de punto flotante, etc. El tipo de datos representa el tipo de datos de la variable, donde variable_name representa el nombre de la variable y se le asigna un valor nulo.

También hay un atajo para esta sintaxis que implica? operador junto con el tipo de datos como se menciona a continuación:

data_type? variable_name = null;

La sintaxis anterior representa el tipo de datos anulable en C#. Los ? El símbolo de marca representa el tipo anulable. El tipo de datos representa el tipo de datos de la variable, donde variable_name representa el nombre de la variable y se le asigna un valor nulo.

Características del tipo anulable en C#

·         No se puede acceder directamente a los valores del tipo que acepta valores NULL. El método GetValueOrDefault() se usa para extraer el valor asignado si no está asignado a nulo, y si es nulo, se devuelve el valor predeterminado, que es cero.

·         Se puede asignar un valor nulo a una variable mediante un tipo que acepta valores NULL sin necesidad de crear un tipo que acepta valores NULL en función del tipo de referencia.

·         Los valores se pueden asignar a tipos que aceptan valores NULL.

·         Nullable HasValue y Nullable se pueden usar para comprobar el valor. Si se asigna un valor a un objeto, se devuelve verdadero y se devuelve falso si se asigna nulo al objeto. Si no hay ningún valor asignado al objeto, se genera un error en tiempo de compilación.

·         == y ! los operadores se pueden usar con tipos anulables.

·         Si se asigna un valor nulo al tipo que acepta valores NULL, el método GetValueOrDefault(T) proporciona el valor asignado o el valor predeterminado que se proporciona como predeterminado.

·         El operador de fusión nula (??) también se puede usar para asignar un valor al valor del tipo que acepta valores NULL.

·         Los tipos anidados anulables no son compatibles con el tipo anulable.

·         Un tipo anulable no admite el tipo var. El compilador da un error de tiempo de compilación si se usa anulable con var.

Ventajas del tipo anulable en C#

·         El tipo anulable se usa en aplicaciones de bases de datos. Si una columna en una base de datos requiere valores nulos, se puede usar un tipo que acepta valores nulos para asignar valores nulos a la columna.

·         Los valores no definidos se pueden representar mediante tipos que aceptan valores NULL.

·         Un valor nulo se puede almacenar utilizando un tipo que acepta valores NULL en lugar de utilizar un tipo de referencia.

DEMOSTRACIÓN

En el método Main de nuestro proyecto de consola escribiremos lo siguiente:

Como podemos observar en la 1era línea de código, se declara una varia que acepta valores enteros pero al colocarle el '?' con esto le indicamos que acepta valores nulos, con el HasValue indica si una instancia de un tipo de valor anulable tiene un valor de su tipo subyacente.

Podemos ver un resultado parcial en la consola:


Ahora en el mismo método Main haremos el ejemplo con los valores booleanos nulos


Aquí podemos ver que al igual que el anterior para que acepte valores nulos tiene que ir antecedido del '?' y tambien podemos trabajar con el total de la memoria que nos ofrece a través del Garbage Colector.

El resultado en la consola


Podemos trabajar con enumeraciones nulas, para ello arriba del metodo Main colocaremos una


Empezamos a trabajar con ella pero esta vez colocándola como valores


Y al igual que los valores tipo int y bool, podemos aplicar los nulos en los tipos fechas


Se coloca un metodo Test despues del Main para verificar el valor


El resultado por consola


Y al igual que todos los tipos de datos se puede aplicar a los Genéricos con Nullable<T>.


El resultado








 

Tal vez te interesen estas entradas

No hay comentarios