Tengo una lista:C# struct, ¿cómo asignar un valor nulo?
List<int, SomeStruct>
Por alguna razón, no me permite asignar valores nulos a ella. ¿Qué hago si no quiero tener una estructura asociada?
Tengo una lista:C# struct, ¿cómo asignar un valor nulo?
List<int, SomeStruct>
Por alguna razón, no me permite asignar valores nulos a ella. ¿Qué hago si no quiero tener una estructura asociada?
Uso nullable types:
List<int, SomeStruct?>
No puede asignar null
a un elemento de la lista porque las estructuras son tipos de valor, mientras que null
significa un puntero de vacío, por lo que sólo se puede asignar a las variables de tipo referencia.
También tenga en cuenta que List
como lo está utilizando no existe en .NET! Tal vez quiere Dictionary
?
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 al final.
Sin embargo, es probable que primero tenga en cuenta los detalles, es muy probable que realmente no desee una 'estructura', pero sería mejor con una 'clase'.
De acuerdo. El problema es que no poseo el Struct, simplemente lo estoy usando :( –
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 los 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. Puede hacerlo concatenando el carácter '?
' con su nombre de tipo, o marcándolo como Nullable, donde T es el nombre de su estructura.
¡No pude resistirme a responder cuando vi que iban a haber tres 'Will' respondiendo una pregunta! = P –
Donde hay tres Testamentos allí son tres formas? – RenniePet
Cuando hago esto, cualquier referencia al miembro de estructuras ahora me da el error: System.Nullable <> no contiene una definición para 'Miembro' –
@whydna: Lee sobre tipos anulables. Básicamente, 'SomeStruct?' Es azúcar sintáctica para 'Nullable'. No puede acceder a los miembros directamente, pero ese es el precio que paga por usar semántica 'null' con un tipo de valor. –
Gracias por su ayuda :) –