Ich suchte ziemlich viel, fand aber keine Antwort.Variable Zuweisung, die Referenz aktualisiert?
Das ist, was ich habe:
Wrapper _wrap1;
Wrapper _wrap2;
public Wrapper GetWrapper(int num)
{
Wrapper cachedWrapper = num == 1 ? _wrap1 : _wrap2;
if(cachedWrapper == null)
{
cachedWrapper = new Wrapper();
}
return cachedWrapper;
}
Ich bin mir bewusst, dass ‚cachedWrapper
‘ eine neue Referenz ist, und entweder keine Auswirkungen auf _wrap1
oder _wrap2
haben.
Ich suche nach einem eleganten Weg, der diese Felder ohne die Notwendigkeit für eine zusätzliche if-Anweisung aktualisieren wird.
Meine Klasse hat viel mehr als nur 2 Wrapper, und ich habe mehr Typen als nur 'Wrapper'.
Dank
initialisieren Sie die Felder, wenn Sie sie erklären:
Aber, um Blorgbeard Kommentar hinzufügen, können Sie ein Wörterbuch verwenden. – Servy
Können Sie auf [C# 7] warten (http://stackoverflow.com/documentation/c%23/1936/c-sharp-7-0-features/19197/ref-return-and-ref-local#t= 201608112135378343854)? – Blorgbeard
Wenn Sie "viel mehr" als 2 Wrapper haben, sollten sie sich vielleicht in einem Wörterbuch befinden, anstatt ein Feld pro Instanz zu haben. – Blorgbeard