Pregunta

¿Es posible utilizar una variable dinámica (no estoy seguro sobre el nombramiento) en C #?

En PHP, puedo hacer

$var_1 = "2";
$var_2 = "this is variable 2";

$test = ${"var_".$var_1};

echo $test;

output: this is variable 2;

¿Podemos hacer esto en C #?

¿Fue útil?

Solución

En C #, utiliza diccionarios asociar valores con cuerdas .

Otros consejos

No, básicamente. El compilador no garantiza que las variables existirán método (en su forma como por escrito), o con nombres ...

Si fueran campos (instancia o estática), entonces se podría utilizar la reflexión para obtener los valores; pero no las variables del método. Por lo que quieres, tal vez usar un diccionario como un sustituto?

var vars = new Dictionary<string,object>();
vars["var_1"] = "2";
vars["var_2"] = "this is variable 2";

Console.WriteLine(vars["var_" + vars["var_1"]]);

No estoy seguro si esto funciona con variables locales (y muy probablemente no lo hace, ya que están almacenados como índices), pero se puede acceder a las propiedades de la clase a través de la reflexión.

Si su var es un campo de clase, a continuación, puede utilizar la GetField método de Type clase para obtener la información de campo, tal como su valor actual.

Usted no está buscando para las matrices simples?

string[] myArray = new string[2];

myArray[0] = "2";
myArray[1] = "this is variable 2"

diccionario otherwhise es el camino a seguir.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top