Comprender el uso de tipos anulables en C#[1]

En C#, los tipos de datos son muy útiles para tratar con campos opcionales y muchos aspectos de las bases de datos.

Definir tipos que aceptan valores NULL

Definir un tipo que acepta valores NULL es muy similar a definiendo un tipo que no admite valores NULL. ¿Está utilizando modificadores de tipo? Por ejemplo, defina un número entero de la siguiente manera

int myInt = ; Para permitir que una variable entera almacene un valor nulo, puede declararlo de la siguiente manera

int? las variables parecen iguales pero en realidad no es el caso El tipo anulable es una estructura que tiene dos campos públicos legibles HasValue y Value HasValue es un valor booleano cuando hay un valor almacenado es verdadero cuando el valor de la variable es nulo HasValue es falso cuando HavValue Si es verdadero, se puede obtener el valor de la variable. Si es falso, se lanzará una excepción al intentar obtener el valor de la variable

Ahora nulo es un. palabra clave en C# y se puede asignar a una variable anulable. Las siguientes son dos formas efectivas de asignar un valor a una variable anulable.

double? myDouble = ;double? myOtherDouble = null; se le asigna un valor, y también se le puede asignar un valor nulo. En la segunda declaración, myOtherDouble se inicializa a nulo; hacer esto en una variable que no acepta valores NULL generará una excepción.

Usar el tipo que admite valores NULL Se puede utilizado durante la compilación como un tipo de valor normal Las variables anulables y las variables no anulables se someterán a una conversión implícita, lo que significa que podemos asignar un entero estándar a una variable entera anulable y viceversa. Consulte el código de ejemplo a continuación.

int? nPrimero = null;

int Segundo = ;

nPrimero = Segundo

// Sí

nPrimero = ;

/ / Sí

Segundo = nPrimero;

//También es posible porque nPrimero== nPrimero = nulo

/ / Sí

Second = nFirst;

// Lanza una excepción La segunda es una variable que no admite valores NULL.

Puedes ver que siempre que el valor de Nullable La variable no es nula, se puede combinar con una variable de intercambio que no sea Nullable. Si el valor de la variable de intercambio de tipo contiene un valor nulo, se generará una excepción. Para evitar excepciones, puede usar el atributo HasValue de la variable de tipo Nullable si. (nFirst HasValue) Second = nFirst;

Como se muestra arriba, si nFirst contiene un valor, se ejecutará la declaración de asignación; de lo contrario, se omitirá

Utilice el operador Lifed Operadores en Nullable. Dos variables anulables y no anulables del mismo tipo pueden exceptuarse entre sí. Además de la conversión automática, también puede operarlas a través de operadores. Consulte el siguiente código lishixinzhi/Article/program/net/201311/14979.