C# struct zuweisen einen null-Wert?
Habe ich eine Liste:
List<int, SomeStruct>
Aus irgendeinem Grund ist es nicht erlaubt mir, zuordnen, null-Werte zu. Was mache ich, wenn ich keine Struktur verbunden?
InformationsquelleAutor der Frage Andy Hin | 2010-11-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden nullable-Typen:
Können Sie nicht zuordnen
null
auf ein element der Liste, weil structs sind value-Typen, währendnull
bedeutet einen leeren Zeiger, und also kann nur zugewiesen werden, um den Typ der Referenz-Variablen.Beachten Sie auch, dass
List
wie Sie über, es existiert nicht .NET! Vielleicht möchten SieWörterbuch
?InformationsquelleAutor der Antwort Will Vousden
In C# ein struct ist ein 'Wert-Typ', der kann nicht null sein.
Wenn Sie wirklich, wirklich brauchen, um in der Lage zu null, dann machen es zu einem 'nullable' geben, indem ein abschließendes Fragezeichen.
Sollten Sie wahrscheinlich Blick auf die details dieses mehr zunächst, aber es ist ziemlich wahrscheinlich, dass Sie nicht wirklich wollen, eine Struktur 'struct', aber wäre besser mit einer 'Klasse'.
InformationsquelleAutor der Antwort Will Dean
Es sei denn, Sie definiert haben, eine benutzerdefinierte generische collection,
List<T, U>
existiert nicht in derSystem.Sammlungen.Generic
namespace. Hast du eher meinstDictionary<TKey, TValue>
?Können Sie verwenden von auf null festlegbaren Typen:
Verwenden von auf null festlegbaren Typen (C# - Programmierhandbuch)
.Wie bei jedem ValueType, müssen Sie explizit angeben, dass Sie null-Werte zulassen, für Ihre Art. Sie können dies tun, durch die Verkettung der '
?
' - Zeichen mit Ihren Namen eingeben, oder indem Sie es markieren als null, wobei T der name der Struktur.InformationsquelleAutor der Antwort Will Marcouiller