Предположим, у вас есть следующий класс:
class Car : IPainting
{
...
}
Тогда такая функция:
void AddCars(IEnumerable<Car> collection)
Затем такой фрагмент кода:
Car bmw = new Car();
Car mercedes = new Car();
IPainting a = (IPainting) bmw;
IPainting b = (IPainting) mercedes;
IPainting[] paintings = new IPainting[] {a, b};
AddCars(paintings); // fails to compile
Это, конечно, не компилируется, потому что метод AddCars () принимает только коллекцию Cars, но это то, из чего состоит массив 'painting'.
Я знаю, что C # 4.0, вероятно, предоставит решение для этого. Есть ли обходной путь сегодня?
Спасибо
Альберто