title: Make sure base method gets called in C#
body: <p>Can I somehow force a derived class to always call the overridden methods base?</p>
  
  <pre><code>public class BaseClass
  {
      public virtual void Update()
      {
          if(condition)
          {
              throw new Exception("..."); // Prevent derived method to be called
          }
      }
  }
  </code></pre>
  
  <p>And then in a derived class :</p>
  
  <pre><code>public override void Update()
  {
      base.Update(); // Forced call
  
      // Do any work
  }
  </code></pre>
  
  <p>I've searched and found a suggestion to use a non-virtual Update() but also a protected virtual UpdateEx(). It just doesn't feel very neat, isn't there any better way?</p>
  
  <p>I hope you get the question and I am sorry for any bad English.</p>