Интерфейс ICollection в качестве параметра метода
I use method AddRange from the class ArrayList and I found example: ArrayList myAL = new ArrayList(); Queue myQueue = new Queue(); myQueue.Enqueue( "jumped" ); myQueue.Enqueue( "over" ); myQueue.Enqueue( "the" ); myQueue.Enqueue( "lazy" ); myQueue.Enqueue( "dog" ); // Copies the Queue elements to the end of the ArrayList. myAL.AddRange( myQueue ); AddRange has a Parameter of type ICollection, but in example I can give Queue class(probably because Queue class is inheritad from interface ICollection). Can somebode explain me what happens at call AddRange and copy Queue class type in interface type ICollection.What happens exactly on the heap and on the stack with data types?Thanks.
Что я уже пробовал:
Я попробовал код и работает. Но я не понимаю, как класс объекта преобразуется в тип ICollection?