C# - Compiler Error - while assigning int[] to object[]
<pre><code>namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            object[] obj = new object[3];
            obj[0] = new object();
            obj[1] = "some string";
            obj[2] = 10;

            string[] strings = new string[] { "one", "two", "three" };
            obj = strings; //---&gt; No Error here, Why ?

            int[] ints = new int[] { 1, 2, 3 };
            obj = ints; /*-&gt; Compiler error - Cannot implicitly convert type 'int[]' to 'object[]', Why ?*/ 
        }
    }
}
</code></pre>

<p>I get a compiler error while doing the step as shown above. But, in the preceding step, there is no error. Can somebody explain me this behavior ? I am using VS 2010.</p>

<blockquote>
  <p>EDIT - For sake of completeness, again, this won't compile - Variance support in .NET 4.0 has been cleaned up now. One can use new keywords <em>in</em> and <em>out</em> with generic type parameters.</p>
</blockquote>

<pre><code>    List&lt;object&gt; objectList = new List&lt;object&gt;();
    List&lt;string&gt; stringList = new List&lt;string&gt;();
    objectList = stringList;
</code></pre>
