Altere temporariamente o valor de uma variável

Em uma implementação de API em que estou invadindo, há a necessidade de alterar repetidamente algumas variáveis temporariamente, antes de executar alguma tarefa, e alterá-las novamente depois que a tarefa é executada para o que eram ante

O código atual é assim:

var _oldValue = _variable;
_variable = tempValue;
try
{
  doIt();
}
finally
{
  _variable = oldValue;
}

azer isso muito é chato, feio, difícil de manter e enterra os algoritmos reais sob muita confusão, que são apenas artefatos de implementaçã

No C ++, eu criaria uma classe que armazena o valor antigo em algum lugar durante a construção e o restaura em seu destruidor:

{
  temp_value tmp(variable_, temp_val);
  do_it();
}

Ao tentar fazer algo semelhante em C #Eu falhe porque aparentemente C # não pode armazenar referências a outros objetos nas classes.

Então, o que eu teria que fazer em C # para remover essa confusã

P.S .: Sinta-se à vontade para adicionar outras tags que desejar. Não consegui encontrar nenhu

questionAnswers(3)

yourAnswerToTheQuestion