En C #, ¿cuál es el valor predeterminado de una variable de instancia de clase de tipo int??
Por ejemplo, en el siguiente código, ¿qué valor tendrá MyNullableIntsi nunca se asigna explícitamente?
class MyClass
{
public int? MyNullableInt;
}
(Parece probable que la respuesta sea casi con certeza nullo 0, pero ¿cuál de ellos es?)

int? x;y ver cuál es el resultado.Respuestas:
El valor predeterminado para
int?- y para cualquier tipo que acepte valores NULL que use "type?" declaración - esnull.Por qué este es el caso:
int?es azúcar sintáctico para el tipo Nullable <T> (donde T esint), una estructura. ( referencia )Nullable<T>tipo tiene un miembro bool HasValue , que cuandofalsehace que laNullable<T>instancia "actúe como" unnullvalor. En particular, el Anulable <T> método .equals se anula para volvertruecuando unaNullable<T>conHasValue == falsese compara con un actualnullvalor.null.boolvariable en C # esfalse( referencia ). Por lo tanto, laHasValuepropiedad de unaNullable<T>instancia predeterminada esfalse; lo que a su vez hace que esaNullable<T>instancia actúe comonull.fuente
int? x = null;aint? x;, obtengo errores del compilador más abajo en el código: "Uso de la variable local x no asignada".Field 'id' is never assigned to, and will always have its default value 0. Extraño, ¿no?Me sentí importante compartir el
Nullable<T>.GetValueOrDefault()método que es particularmente útil cuando se trabaja con cálculos matemáticos que usan valores deNullable<int>akaint?. Hay muchas ocasiones en las que no tiene que verificar laHasValuepropiedad y puede usarlaGetValueOrDefault()en su lugar.fuente
fuente