Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
29 / 31 / 2
Регистрация: 14.04.2012
Сообщений: 152

Каким образом тип значений взаимодействует с ссылочным типом

27.06.2012, 13:58. Показов 859. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// Реализовать интерфейсы IEnumerable и IEnumerator. 
using System; 
using System.Collections; 
class MyClass : IEnumerator, IEnumerable { 
char[] chrs = { 'A' , 'B', 'C' , 'D' }; 
int idx = -1; 
// Реализовать интерфейс IEnumerable. 
public IEnumerator GetEnumerator() { 
return this; 
} 
// В следующих методах реализуется интерфейс IEnumerator 
// Возвратить текущий объект, 
public object Current { 
get { 
return chrs[idx]; 
} 
} 
// Перейти к следующему объекту, 
public bool MoveNext() { 
if(idx == chrs.Length-1) { 
Reset(); //установить перечислитель в конец 
return false; 
} 
idx++; 
return true; 
} 
// Установить перечислитель в начало, 
public void Reset() { idx = -1; } 
} 
class EnumeratorImplDemo { 
static void Main() { 
MyClass mc = new MyClass (); 
// Отобразить содержимое объекта mc. 
foreach(char ch in mc) 
Console.Write(ch + " "); 
Console.WriteLine(); 
// Вновь отобразить содержимое объекта mc. 
foreach(char ch in mc) 
Console.Write(ch + " "); 
Console.WriteLine();
Console.ReadKey();
} 
}
Голова начала взрываться на строках
C#
1
foreach(char ch in mc)
,каким образом тип значений взаимодействует с ссылочным типом.o_O
а так же каким образом MyClass понимает,что если вызван цикл foreach,то следует начать выполнять все внутренние свойства и методы?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.06.2012, 13:58
Ответы с готовыми решениями:

Каким типом можно заменить тип Cardinal
Ребят ориентируюсь в delphi поросили написать программу на pascalABC подскажите пожалуйста каким типом можно заменить тип Cardinal

почему $_FILES не всегда определяет тип файла? каким образом можно определить тип в 100% случаях?
почему $_FILES не всегда определяет тип файла? каким образом можно определить тип в 100% случаях?

Как создать функцию, которая определит с каким типом данных ей работать и подстроиться под этот тип?
например если мне нужно создать шаблон функции сортировки одномерных массивов произвольного типа)))

3
713 / 680 / 126
Регистрация: 30.03.2012
Сообщений: 1,124
27.06.2012, 14:12
C#
1
2
3
4
5
6
7
        public object Current
        {
            get
            {
                return chrs[idx];
            }
        }
отсюда узнает
вы же сами прописываете ЧТО он ему возвращает
заведите в классе еще один массив string например и возвращайте в этом методе его - будет у вас foreach для string работать, а для char нет
более того если вы заведете еще один массив charss то он в этом foreach участия не будет принимать потому что вы его никуда не передаете методами IEnumerator

понимает потому что foreach работает только с классами в которых реализован IEnumerator, это значит что он вызывает методы прописанные в IEnumerator в соответствии с тем как они переопределены в вашем классе
не методы класса вызываются, а методы IEnumerator
1
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
27.06.2012, 14:16
Цитата Сообщение от SocialEngineer Посмотреть сообщение
каким образом тип значений взаимодействует с ссылочным типом.o_O
отвечаю вашим же кодом

Цитата Сообщение от SocialEngineer Посмотреть сообщение
C#
1
2
3
4
5
public object Current { 
get { 
return chrs[idx]; 
} 
}
напомню что типы значений так же унаследованы от object, а если быть точнее от System.ValueType который в свою очердь унаследован от System.Object

Не по теме:

упс...опоздал

1
29 / 31 / 2
Регистрация: 14.04.2012
Сообщений: 152
27.06.2012, 14:21  [ТС]
Да какой ещё мой код,пример из учебника
Jupiter,спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.06.2012, 14:21
Помогаю со студенческими работами здесь

Можно ли каким-то образом наследовать тип bool
Здраствуйте, можно ли каким то образом наследовать тип bool типо что бы 1 - man типо что бы 0 - woman что то в таком роде: class...

Каким символом и каким образом отобразить пробел в document.write
Вот код var mailExample = /^(+)@((+\.)+{2,6})$/; var Str = "hoolio934@mail.ru"; var Str1 = "5252672@mail.ru"; var Str2 =...

Каким образом можно реализовать запись нескольких значений в "поле2" и так же необходима возможность выборки
Здравствуйте! Посоветуйте каким образом реализовать следующее: Например, есть список сотрудников в комбобокс и одну операцию, могут...

Каким типом является Canvas
препод в моем курсаче нашел строку "with canvas do" и спрашивает тип переменной у canvas-a. все перерыл не могу найти. помогите пожалуйста,...

Каким типом задать дату в классе: Папка, поле: ДатаСоздания?
Мне нужно описать класс ПАПКА с полями (имя, дата создания, количество файлов). Какого типа должно быть второе поле (дата создания)? Если...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru