variable dinámica en C #?
-
16-09-2019 - |
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 #?
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.