Tipos nullables en C#

1 - Tipos nullables en C#

No podemos inicializar una variable a null, porque en sí es un valor null, osea que no sería del mismo tipo.

En cristiano, no podemos hacer lo siguiente

int enteroNulo = null;

nota: en nuestro ejemplo lo realizaremos con un entero, pero puede ser cualquier tipo de dato, como un decimal o un datetime

En cambio C# nos permite tratar esta encrucijada permitiéndonos modificar los tipos para que estos sean nullables. esta acción se realiza indicando el carácter ? después del tipo de dato que va a ser.

int? enteroNulo = null;
enteroNulo =123;

como vemos nos permite tener un entero null. Y le podemos asignar un valor sin ningun problema. 

Pero si queremos asignar este valor a una variable que sí es un entero, nos dará un error.

int enteroNormal = 234;
int? enteroNulo = 123;
enteroNormal = enteroNulo;

esto tiene sentido, ya que no son el mismo tipo, int? puede contener un valor nulo, mientras que int no puede contenerlo. para realizar esa conversión debemos utilizar una de sus propiedades.

1.1  - Propiedades de los tipos nullables

Los tipos nulos nos dejan acceder a ciertas propiedades que nos permitirán de una manera sencilla identificar varias acciones que necesitamos, como puede ser la propiedad HasValue, la cual nos dice si contiene valor o si es un null. para finalmente acceder a la propiedad Value, que nos dará el valor de esa variable si no es un nulo.

Por lo que, basándonos en el ejemplo anterior, podríamos comprar si la variable enteroNulo tiene un valor y si no lo tiene, asignarlo.

if(enteroNulo.HasValue()) 
{
    enteroNormal = enteronulo.Value;
}

 


Uso del bloqueador de anuncios adblock

Hola!

Primero de todo bienvenido a la web de NetMentor donde podrás aprender programación en C# y .NET desde un nivel de principiante hasta más avanzado.


Yo entiendo que utilices un bloqueador de anuncios como AdBlock, Ublock o el propio navegador Brave. Pero te tengo que pedir por favor que desactives el bloqueador para esta web.


Intento personalmente no poner mucha publicidad, la justa para pagar el servidor y por supuesto que no sea intrusiva; Si pese a ello piensas que es intrusiva siempre me puedes escribir por privado o por Twitter a @NetMentorTW.


Si ya lo has desactivado, por favor recarga la página.


Un saludo y muchas gracias por tu colaboración

© copyright 2024 NetMentor | Todos los derechos reservados | RSS Feed

Buy me a coffee Invitame a un café