fork download
  1. using System;
  2.  
  3. namespace Articulos.Cap04.TiposNullables
  4. {
  5. public sealed class IntroTiposNullables
  6. {
  7. public static void Main()
  8. {
  9. // Declaración implícita de un tipo nullable entero
  10. // de 32 bits:
  11. int? numero = null;
  12.  
  13. // Comprobamos si la variable `numero` contiene un
  14. // valor diferente a null asignado:
  15. if (numero.HasValue)
  16. {
  17. Console.WriteLine ("Valor de `numero`: {0}", numero.Value.ToString());
  18. }
  19. else
  20. {
  21. Console.WriteLine ("`numero` = null");
  22. }
  23.  
  24. // Asignamos el valor por defecto dado para un
  25. // entero de 32 bits:
  26. int y = numero.GetValueOrDefault();
  27.  
  28. // El intento de obtener el valor de la variable
  29. // entera `numero`, la cual no cuenta con un valor
  30. // distinto de null genera la excepción
  31. // InvalidOperationException:
  32. try
  33. {
  34. y = numero.Value;
  35. }
  36. catch (InvalidOperationException e)
  37. {
  38. Console.WriteLine ("Mensaje de excepción: {0}", e.Message);
  39. }
  40. }
  41. }
  42. }
Success #stdin #stdout 0.02s 34720KB
stdin
Standard input is empty
stdout
`numero` = null
Mensaje de excepción: Nullable object must have a value.