variabile dinamica in C #?
-
16-09-2019 - |
Domanda
E 'possibile utilizzare una variabile dinamica (non sono sicuro sulla denominazione) in C #?
In PHP, posso fare
$var_1 = "2";
$var_2 = "this is variable 2";
$test = ${"var_".$var_1};
echo $test;
output: this is variable 2;
Possiamo fare questo in C #?
Soluzione
In C #, si utilizza dizionari per associare i valori con le stringhe .
Altri suggerimenti
No, in fondo. Il compilatore non garantisce esisteranno che le variabili di metodo (nella loro forma come scritto), o con i nomi ...
Se fossero campi (istanza o statico), allora si potrebbe utilizzare la reflection per ottenere i valori; ma non variabili di metodo. Per ciò che si vuole, forse utilizzare un dizionario come sostituto?
var vars = new Dictionary<string,object>();
vars["var_1"] = "2";
vars["var_2"] = "this is variable 2";
Console.WriteLine(vars["var_" + vars["var_1"]]);
Non sono sicuro se questo funziona con le variabili locali (e molto probabilmente non è così dato che sono memorizzati come indici), ma si potrebbe accedere alle proprietà della classe attraverso la riflessione.
Se il var
è un campo di classe, quindi è possibile utilizzare il GetField
metodo dalla classe Type
per ottenere informazioni di campo, come ad esempio il valore corrente.
Non siete alla ricerca per gli array semplici?
string[] myArray = new string[2];
myArray[0] = "2";
myArray[1] = "this is variable 2"
dizionario otherwhise è la strada da percorrere.