title: C# and variable number of parameters
body: <p>I tried the following code:</p>
  
  <pre><code>class Program: ProgParent
      {
  
          public int Max(params int[] op)
          {
              return 0;
          }
  
          public int Max(int i, params int[] op)
          {
              return 1;
          }
  
          public int Max(int i, int j, params int[] op)
          {
              return 2;
          }
  
          public static void Main(string[] args)
          {
              System.Console.WriteLine((new Program()).Max(5, 6, 7, 8));
              System.Console.ReadKey();
          }
      }
  </code></pre>
  
  <p>It executes, and uses the most specific function available. But the compiler gives no warning or error about this. Why?</p>