2016-03-31 12 views
0

was ich hier erreichen möchte ist: Erstellen Sie eine Liste von String, die die Namen von Klassen-Instanzen sind dann innerhalb einer für jede Schleife verwenden Sie die Instlist-Strings wie eine Instanz der Klasse und fügen Sie etwas zu dieser Eigenschaft dieser KlasseVerwenden von Text anstelle von Instanznamen von Klassen

ist das möglich?

Antwort

2

Wenn Sie das wirklich wollen, können Sie ein Wörterbuch mit dem Namen als Schlüssel und der Instanz als Wert erstellen. Ich frage mich jedoch, warum Sie denken, dass der Name der Variablen so wichtig ist ... Ein Variablenname kann leicht geändert werden und schließlich ist es nur ein Zeiger auf das tatsächliche Objekt. Sollten Sie keine Klasse erstellen, um die 'Metadaten' der Variablen zu speichern?

Dictionary<string, string> d = new Dictionary<string, string>(); 
d.Add(nameof(a), a); 
d.Add(nameof(b), b); 

string valueAtB = d["b"]; 
+0

Hinweis: nameof ist in C# 6.0 nur verfügbar, wenn Sie also dieser Code eine frühere Version verwenden, wird nicht kompiliert –

+0

der Tat, können Sie nur verwenden 'd.Add ("b", b); ', das ist nicht so ausdrucksvoll, tut aber das Gleiche. –

+0

Überprüfen Sie diese Lösung, die eine Möglichkeit bietet, den Namen C# 6 http://stackoverflow.com/questions/9801624/get-name-of-a-variable-or-parameter zu erhalten – CathalMF

Verwandte Themen