Suppose you have the following class:
class Car : IPainting
{
...
}
Then a function like this:
void AddCars(IEnumerable<Car> collection)
Then a code snippet like this:
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
This of course doesn't compile because the AddCars() method accepts only a collection of Cars but it is what the 'paintings' array is made of.
I know that C# 4.0 will probably provide a solution for this. Is there any workaround today for it?
Thanks,
Alberto