Initialisieren eines Array von Strukturen in C #
Wie kann ich die Initialisierung eines const - /statischen array von Strukturen so klar wie möglich?
class SomeClass
{
struct MyStruct
{
public string label;
public int id;
};
const MyStruct[] MyArray = {
{"a", 1}
{"b", 5}
{"q", 29}
};
};
InformationsquelleAutor der Frage Adam Tegen | 2008-11-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstens, tun Sie wirklich haben eine veränderliche Struktur? Sie sind böse. Ebenfalls den öffentlichen Bereichen.
Andere als die, würde ich nur erstellen Sie einen Konstruktor mit den zwei bits von Daten:
Beachten Sie die Verwendung von ReadOnlyCollection statt, wodurch das array selbst - das macht es unveränderlich, vermeiden das problem Verfügbarmachen von arrays direkt. (Die code-Karte nicht initialisieren ein array von structs - es dann eben übergibt die Referenz an den Konstruktor von
ReadOnlyCollection<>
.)InformationsquelleAutor der Antwort Jon Skeet
Werden Sie mit C# 3.0? Sie können verwenden Sie objektinitialisierer etwa so:
InformationsquelleAutor der Antwort Winston Smith
Können Sie Sie nicht initialisieren Referenz-Typen standardmäßig andere als null. Sie haben, um Sie readonly. So konnte diese Arbeit;
InformationsquelleAutor der Antwort Ali Ersöz
Ändern
const
zustatic readonly
und initialisieren Sie es soInformationsquelleAutor der Antwort Shreevardhan
Ich würde verwenden einen statischen Konstruktor für die Klasse, die den Wert festlegt, der eine statische readonly array.
InformationsquelleAutor der Antwort Paul Sonier