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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top