title: c# parameter implicit conversion
body: <p>Having this code:</p>
  
  <pre><code>    class Program
      {
          static void Main(string[] args)
          {
              Check(3);
              Console.ReadLine();
          }
  
          static void Check(int i)
          {
              Console.WriteLine("I am an int");
          }
  
          static void Check(long i)
          {
              Console.WriteLine("I am a long");
          }
  
          static void Check(byte i)
          {
              Console.WriteLine("I am a byte");
          }    
      }
  </code></pre>
  
  <p>Why this code prints "I am an int" and not "I am a long" ?</p>