Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Можно ли присваивать внутри foreach? 
:(
    Опции темы
Dims
Дата 5.11.2008, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



А если я присвою значение переменной цикла foreach внутри цикла, оно занесётся в коллекцию?

Например,

Код

foreach(double d in ds) {
   d = 0;
}

PM MAIL   Вверх
Bogdan1024
Дата 5.11.2008, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: 3
Всего: 13



Конечно, не. 
Когда ты гоняешь по коллекции используя foreach, то тебе на самом деле объект, реализующий IEnumerable возвращает IEnumerator, который в свою очередь возвращает сам объект. Тоесть, если ты присвоишь переменной, ссылающейся на объект о1, ссылку на объект о2, то в коллекции ничего не поменяется.
А в этом случае не поменяется тем более так как double - это value-type.
Код

foreach(double d in ds) {
   d = 0;
}



--------------------
user posted image
PM MAIL   Вверх
Dims
Дата 5.11.2008, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



Я почему спрашиваю. В Си# энумератор устроен так, что по идее ему может быть можно присваивать. У него же есть Current, а это -- свойство, у которого есть и сеттер и геттер. 


PM MAIL   Вверх
Bogdan1024
Дата 5.11.2008, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: 3
Всего: 13



Офигеть. Мне нужно было сначала проверить smile
Код

            foreach (c c0 in cs)
                c0 = new c(654);

Кидает эксцепшн "Cannot assign to 'c0' because it is a 'foreach iteration variable'"

Добавлено через 1 минуту и 27 секунд
То же самое и с 
Код

foreach(double d in ds) {
   d = 0;
}



--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0435 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.