variável dinâmica em C #?
-
16-09-2019 - |
Pergunta
É possível usar uma variável dinâmica (não tenho certeza sobre a nomeação) em C #?
No PHP, eu posso fazer
$var_1 = "2";
$var_2 = "this is variable 2";
$test = ${"var_".$var_1};
echo $test;
output: this is variable 2;
Podemos fazer isso em C #?
Solução
Em C #, você pode usar dicionários para valores associados com cordas .
Outras dicas
Não, basicamente. O compilador não garante que as variáveis ??método vai existir (em sua forma como está escrito), ou com nomes ...
Se fossem campos (instância ou estáticos), então você pode usar a reflexão para obter os valores; mas não variáveis ??do método. Para o que você quer, talvez usar um dicionário como um substituto?
var vars = new Dictionary<string,object>();
vars["var_1"] = "2";
vars["var_2"] = "this is variable 2";
Console.WriteLine(vars["var_" + vars["var_1"]]);
Não tenho certeza se isso funciona com variáveis ??locais (e provavelmente não desde que eles estão armazenados como índices), mas você pode acessar as propriedades de classe através da reflexão.
Se o seu var
é um campo classe, então você pode usar a estática GetField
método de Type
classe para obter informações de campo, como seu valor atual.
Você não está olhando para arrays simples?
string[] myArray = new string[2];
myArray[0] = "2";
myArray[1] = "this is variable 2"
dicionário otherwhise é o caminho a percorrer.