Так что я только изучаю C # и наткнулся на что-то, что я нахожу странным ... Я играю с делегатами и создаю делегата DelegateReturnsInt .Теперь, когда я использую цикл foreach , книга показывает, что использовать его следующим образом:
foreach(DelegateReturnsInt del in theDelegate.getInvocationList())
, теперь я знаю, что getInvocationList () возвращает Array of Delegate [], но какон конвертирует их в DelegateReturnsInt ?Я спрашиваю, потому что я хотел просто поиграть и изменить его с foreach на цикл for, поэтому я создал этот
Delegate[] del = theDelegate.GetInvocationList();
for(int i = 0; i < del.Length; i++){
int result = del[i]();
, но он не видит del [i] как метод.Я пробовал приводить к DelegateReturnsInt и тому подобное, но он дает мне ошибки типа приведения из-за отсутствия определения.
Мой большой вопрос - что делает foreach () таким особенным?