Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
redseven
58 / 16 / 26
Регистрация: 07.02.2015
Сообщений: 328
1

Как foreach определяет что работает с интерфейсом а не с чем-либо другим?

17.05.2015, 12:19. Просмотров 355. Ответов 3
Метки нет (Все метки)

Задали вопрос,как foreach определяет что работает с интерфейсом а не с чем-либо другим?


Я прочёл про утиную типизацию,про GetEnumerator,IEnumerator,IEnumerable знаю,может что-то упустил из виду?

Подскажите пожалуйста ответ на этот вопрос.

пример

C#
1
2
3
4
5
6
7
8
9
10
class A
{}
 
int main
{
int a
foreach(a in A);
yield return a;
 
}
C#
1
2
3
4
5
6
7
8
Class B:IEnumerable,IEnumerator
{}
int main
{
int b;
foreach(b in B)
yield return b;
}
Как ещё foreach определяет что работает именно с интерфейсом а не с простыми массивом?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2015, 12:19
Ответы с готовыми решениями:

Выяснить, является ли четырехугольник ромбом, квадратом, прямоугольником, или чем-либо другим
Четырехугольник 1 Дан четырехугольник. Нужно выяснить, является ли он ромбом, квадратом,...

Что определяет цену каждой валюты по отношению к другим валютам?
Что определяет цену каждой валюты по отношению к другим валютам? Может, спрос на эту валюту...

либо не работает ereg_replace либо я что то не допонимаю
Почему s не меняет на 1 ? =\ $replace='dasdassss'; ereg_replace('s','1',$replace); ...

Как определить, что слева и справа от слова стоят либо разделители, либо пробелы?
Допустим есть символьный массив char mass = "hi, i bag unique class hi. hi " Необходимо определить...

При потсроении пишет что конструктор либо недоступен либо объявлен как explicit
/*Все обьекты содержимые в контейнерах без проблем выводятся через потоковые итераторы и алгоритм...

3
anweledig
12 / 12 / 7
Регистрация: 20.04.2015
Сообщений: 29
17.05.2015, 12:52 2
Массив так-то реализует интерфейсы эти
0
redseven
58 / 16 / 26
Регистрация: 07.02.2015
Сообщений: 328
17.05.2015, 13:58  [ТС] 3
Я знаю. что если мы в мэйне напишем массив и после укажаем на него в foreach,то он будет его перебирать,так же и с интерфейсами..

Но вопрос который мне задали немного запутал,меня и поэтому я решил спросить тут,а может foreach ещё что-то умеет

Про утиную типизацию я прочёл.

Добавлено через 58 минут
Тему можете закрыть,решена проблема
0
Metall_Version
2126 / 1263 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
Завершенные тесты: 2
17.05.2015, 16:04 4
redseven, дело совершенно не в интерфейсе, главное чтобы у объекта был метод GetEnumerator с нужной сигнатурой.
0
17.05.2015, 16:04
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2015, 16:04

Нечто этакое с диском либо дистрибутивом либо чем то ещё (руки кривые)
Признаться не знал куда и кому обратиться. Линуксом пользуюсь года 3 - побывал на разных...

Найти количество наборов, элементы которых либо возрастают либо убывают (в чем ошибка?)
uses crt; var k:byte; a,b,i,kol:integer; function vozrastaet(a,b:integer):boolean; begin...

Подскажите видеоконвектор с консольными командами или другим программным интерфейсом
Подскажите видеоконвектор с консольными командами или другим программным интерфейсом что бы к нему...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.