title: What is the point of "static new" modifier for a function?
body: <p>Today, I found something in legacy code. It has "static new" for one function. It looks like this.</p>
  
  <pre><code>class Foo
  {
      public static void Do()
      {
          Console.WriteLine("Foo.Do");
      }
  }
  
  class Bar: Foo
  {
      public static new void Do()
      {
          Console.WriteLine("Bar.Do");
      }
  }
  </code></pre>
  
  <p>I don't understand the <strong><em>static new</em></strong> modifier for the <strong>Do</strong> method in class <strong>Bar</strong>. In C#, static method can only be invoked with class name instead of object name. So, I don't think there is any difference between having the "new" and not.</p>
  
  <p>Generally, if some syntax is unnecessary, C# just treat it is error.
  Anybody has any idea about why C# allows such syntax? </p>