Is there a cost in passing an object to a function that implements a particular interface where the function only accepts that interface? Like:
Change (IEnumerable<T> collection)
and I pass:
List<T>
LinkedList<T>
CustomCollection<T>
which all of them implements IEnumerable. But when you pass any of those to the Change method, are they cast to IEnumerable, thus there is a cast cost but also the issue of losing their unique methods, etc?