try
{
CanSomethingDo = false;
foo(); // на нее влияет глобальный флаг CanSomethingDo
}
finally
{
CanSomethingDo = true;
}
Хочется короче как-то, ближе к:
CanSomethingDo = false;
foo(); // на нее влияет глобальный флаг CanSomethingDo
CanSomethingDo = true;
или еще короче, как в си++ с временным структурками и конструкторами/деструкторами:
{
can_something_do csd(true);
foo();
// в деструкторе false
}
чувствуется, что можно что-то с using() замутить, но не придумаю как, и класс лишний с IDisposable рождать совсем не хочется