structs initialize c# struct nullable

initialize - struct methods c#



C#struct, ¿cómo asignar un valor nulo? (3)

Tengo una lista:

List<int, SomeStruct>

Por alguna razón, no me permite asignarle valores nulos. ¿Qué hago si no quiero tener una estructura asociada?


A menos que haya definido una colección genérica personalizada, List<T, U> no existe en el espacio de nombres System.Collections.Generic . ¿Prefieres decir Dictionary<TKey, TValue> ?

Puede usar tipos anulables: Using Nullable Types (C# Programming Guide) .

Al igual que con cualquier ValueType, debe especificar explícitamente que permitirá valores nulos para su tipo. Puedes hacerlo concatenando el '' ? ''carácter con su nombre de tipo, o marcándolo como Nullable, donde T es el nombre de su estructura.


En C #, una estructura es un ''tipo de valor'', que no puede ser nulo.

Si realmente necesita poder anular esto, conviértalo en un tipo "anulable" agregando un signo de interrogación final.

Sin embargo, probablemente debería analizar los detalles de esto más primero: es muy probable que realmente no desee una "estructura", pero sería mejor con una "clase".


Use los tipos que aceptan nulos :

List<int, SomeStruct?>

No puede asignar null a un elemento de la lista porque las estructuras son tipos de valores, mientras que null significa un puntero vacío, por lo que solo se puede asignar a las variables de tipo de referencia.

¡También tenga en cuenta que la List como la está utilizando no existe en .NET! Tal vez quieres Dictionary ?