¿Cuál es la diferencia entre 'int?' e 'int' en C #?


84

Estoy 90% seguro de que vi esta respuesta en stackoverflow antes, de hecho, nunca había visto el "int?" sintaxis antes de verla aquí, pero no importa cómo busque, no puedo encontrar la publicación anterior y me está volviendo loco.

Es posible que me haya estado comiendo los divertidos hongos por accidente, pero si no lo estoy, ¿alguien puede señalar la publicación anterior si puede encontrarla o volver a explicarla? Mi stackoverflow search-fu es aparentemente demasiado bajo ...

Respuestas:





7

int pertenece a System.ValueType y no puede tener un valor nulo. Cuando se trata de bases de datos u otros tipos en los que los elementos pueden tener un valor nulo, puede resultar útil comprobar si el elemento es nulo. Eso es cuando int? entra en juego. ¿En t? es un tipo que acepta valores NULL que puede tener valores que van desde -2147483648 a 2147483648 y nulo.

Referencia: https://msdn.microsoft.com/en-us/library/1t3y8s4s.aspx


0

el símbolo ? después del int significa que puede ser anulable.

Los ? El símbolo generalmente se usa en situaciones en las que la variable puede aceptar un nulo o un entero o, alternativamente, devolver un entero o un nulo.

Espero que el contexto de uso ayude. De esta manera, no está restringido a tratar únicamente con números enteros.


0

puede usarlo cuando espera un valor nulo en su entero, especialmente cuando usa CASTING ex:

x= (int)y;

si y = nulo, tendrá un error. tienes que usar:

x = (int?)y;

0

Int no puede aceptar nulo, pero si el desarrollador usa int? luego almacena nulo en int como int i = null; // no acepta int? i = nulo; // su trabajo se usa principalmente para la paginación en MVC Pagelist


Esto parece decir lo mismo que la otra respuesta.
JJJ
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.