<IJob>.AddRange списка (список <задание>) не работает

Я обнаружил, что список конкретных объектов не может быть добавлен к списку интерфейсного объекта.

public static void AddJob(List<IJob> masterJobs, List<Job> jobs)
{
    masterJobs.AddRange(jobs);  //fail to compile
}

Вместо этого нужно использовать следующий код:

public static void AddJob(List<IJob> masterJobs, List<Job> jobs)
{
    masterJobs.AddRange(jobs.Cast<IJob>());  
}

Каково рациональное позади этого?

5
задан Graviton 27 July 2010 в 12:14
поделиться