title: Covariance/Conversion issue with Generics
body: <p>Consider the code:</p>
  
  <pre><code>using System.Collections.Generic;
  namespace TestingTypes
  {
      class Program
      {
          static void Main(string[] args)
          {
              var strings = new List&lt;string&gt;();               
              INeedToPassThisMethodAListOfObjects(strings as List&lt;object&gt;);
          }
  
          static void INeedToPassThisMethodAListOfObjects(List&lt;object&gt; objects) { }
      }
  }
  
  1&gt;------ Build started: Project: TestingTypes, Configuration: Debug Any CPU ------
  1&gt;c:\users\[censored]\TestingTypes\Program.cs(9,41,9,64): error CS0039: Cannot convert 
  type 'System.Collections.Generic.List&lt;string&gt;' to 
  'System.Collections.Generic.List&lt;object&gt;' via a reference conversion, boxing 
  conversion, unboxing conversion, wrapping conversion, or null type conversion
  </code></pre>
  
  <p>You might say that a List&lt;string> <em>is a</em> List&lt;object>, since a string is an object and C# 4 is supposed to support covariance in generic types.</p>
  
  <ul>
  <li>Why does the compiler say it can't convert the type?</li>
  <li>How do I pass "strings" to the method?</li>
  </ul>