title: Using a generic parameter on overloaded methods
body: <p>Why does this program output <code>Generic Value</code> and not <code>Hello world!</code>:</p>
  
  <pre><code>using System;
  
  class Example
  {
      public static void Print&lt;T&gt;(T value)
      {
          Console.WriteLine("Generic Value");
      }
  
      public static void Print(string value)
      {
          Console.WriteLine(value);
      }
  
      public static void GenericFunc&lt;T&gt;(T value)
      {
          Print(value);
      }
  
      static void Main()
      {
          GenericFunc("Hello world!");
      }
  }
  </code></pre>
  
  <p>How is the generic method parameter being translated under the hood of C#?</p>