title: Why Does ParameterizedThreadStart Only Allow Object Parameter?
body: <p>Please let me know why <strong>ParameterizedThreadStart</strong> class only allow method which only System.object argument type contain.</p>
  
  <pre><code>public class MainThreadTest
  {
      public static void Main(string[] args)
      {
          Thread T = new Thread(new ParameterizedThreadStart(DisplayYOrX));
          T.Start("X");
  
          DisplayYOrX("Y");
      }
  
      static void DisplayYOrX(object outValue)
      {
          string Parameter = (string)outValue;
  
          for(int i=0; i&lt;10; i++)
              Console.Write(Parameter);
      }
  }
  </code></pre>
  
  <p>Why I would like to know about that is I do not want to use type cast syntax again.</p>
  
  <pre><code>string Parameter = (string)outValue;
  </code></pre>