C# - Ошибка компилятора - поручая интервалу [] возражать []

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; //---> No Error here, Why ?

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

При выполнении шага, показанного выше, возникает ошибка компилятора. Но на предыдущем шаге ошибки нет. Кто-нибудь может объяснить мне такое поведение? Я использую VS 2010.

EDIT - Для полноты, опять же, компиляция не будет выполнена - Поддержка отклонений в .NET 4.0 очищена. Можно использовать новые ключевые слова в и out с параметрами родового типа.

    List<object> objectList = new List<object>();
    List<string> stringList = new List<string>();
    objectList = stringList;
7
задан Sumon Banerjee 12 February 2014 в 09:21
поделиться