Wie definiere ich eine 'struct' Nullable per Definition?
struct AccountInfo
{
String Username;
String Password;
}
nun, wenn ich eine Nullable
Beispiel ich schreiben soll:
Nullable<AccountInfo> myAccount = null;
Aber ich will, machen die struct
Nullable
von der Natur und es kann verwendet werden, wie diese (ohne Verwendung von Nullable<T>
):
AccountInfo myAccount = null;
InformationsquelleAutor der Frage Xaqron | 2010-12-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht. Struct werden als Wert-Typen, und per definition nicht null sein. Der einfachste Weg, um es
nullable
ist es ein Referenz-Typ.Die Antwort, die Sie brauchen, um sich Fragen "Warum ist dies ein struct?", und es sei denn, Sie denken, der eine sehr solide Grund, nicht, und machen es zu einem Klasse. Das argument, über eine Struktur, die als "schneller" ist, ist wirklich übertrieben, wie die Strukturen sind nicht unbedingt auf dem Stapel erzeugt (Sie sollten nicht auf diese angewiesen sind) " und " Geschwindigkeit "gewonnen" variiert auf einer Fall-zu-Fall-basis.
Sehen die post von Eric Lippert auf die class vs. struct Debatte und Geschwindigkeit.
InformationsquelleAutor der Antwort kemiller2002
Wenn Sie ihn deklarieren, deklarieren Sie Sie mit einem "?", wenn Sie es vorziehen
InformationsquelleAutor der Antwort Dlongnecker
Die kurze Antwort: es ist Klasse.
Die lange Antwort: Diese Struktur ist veränderlich, die Strukturen sollten Sie nie werden, Sie stellen nicht einen einzigen Wert, die Strukturen immer sollte, und hat keine vernünftige 'null' - Wert, welche Strukturen auch immer sollte, so ist es sollte wohl nicht sein, einen Wert geben. Dass es eine Klasse (reference-type) bedeutet, dass es immer möglich ist, für die es null sein.
Hinweis: die Verwendung von Worten wie "nie" und "immer" sollte genommen werden, mit einer impliziten "fast".
InformationsquelleAutor der Antwort Greg Beech