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 #?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top