Скажем, я хочу применить правило:
Каждый раз, когда вы вызываете "StartJumping()" в своей функции, вы должны вызвать "EndJumping()" перед тем, как вернуться.
Когда разработчик пишет свой код, они могут просто забыть вызвать EndSomething - поэтому я хочу, чтобы было легко запомнить.
Я могу думать только об одном способе этого: и он злоупотребляет ключевым словом "using":
class Jumper : IDisposable {
public Jumper() { Jumper.StartJumping(); }
public void Dispose() { Jumper.EndJumping(); }
public static void StartJumping() {...}
public static void EndJumping() {...}
}
public bool SomeFunction() {
// do some stuff
// start jumping...
using(new Jumper()) {
// do more stuff
// while jumping
} // end jumping
}
Есть ли лучший способ сделать это?