рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

MoveNext

MoveNext - раздел Программирование, C# Спецификация языка Метод Movenext объе ...

Метод MoveNext объекта перечислителя инкапсулирует код блока итератора. При вызове метода MoveNext выполняется код в блоке итератора и устанавливается соответствующее свойство Current объекта перечислителя. Точное действие, выполняемое MoveNext, зависит от состояния объекта перечислителя при вызове MoveNext:

· Если состояние объекта перечислителя before, то при вызове MoveNext:

o состояние меняется на running;

o инициализируются параметры (включая this) блока итератора значениями аргументов и значением экземпляра, сохраненными при инициализации объекта перечислителя;

o выполняется блок итератора от начала и до тех пор, пока выполнение не будет прервано (как описано ниже).

· Если состояние объекта перечислителя running, результат вызова MoveNext не определен.

· Если состояние объекта перечислителя suspended, при вызове MoveNext:

o состояние меняется на running;

o восстанавливаются значения всех локальных переменных и параметров (включая this) к значениям, сохраненным при последней приостановке выполнения блока итератора. Обратите внимание, что содержимое любых объектов, на которые ссылаются эти переменные, могло измениться со времени предыдущего вызова MoveNext;

o возобновляется выполнение блока итератора с оператора, непосредственно следующего за оператором yield return, вызвавшим приостановку выполнения, и продолжается до тех пор, пока выполнение не будет прервано (как описано ниже).

· Если состояние объекта перечислителя after, при вызове MoveNext возвращается false.

Когда MoveNext выполняет блок итератора, выполнение может быть прервано четырьмя способами: оператором yield return, оператором yield break, по концу блока итератора и инициированным исключением, распространенным из блока итератора.

· Если встретился оператор yield return (§8.14):

o выражение, заданное в операторе, вычисляется, неявно преобразуется к типу yield и присваивается свойству Current объекта перечислителя;

o выполнение тела итератора приостанавливается. Значения всех локальных переменных и параметров (включая this) сохраняются, как и место этого оператора yield return. Если оператор yield return находится внутри одного или более блоков try, их соответствующие блоки finally не выполняются в это время;

o состояние объекта перечислителя меняется на suspended;

o метод MoveNext возвращает true вызвавшему его, указывая этим, что итерация успешно продвинулась к следующему значению.

· Если встретился оператор yield break (§8.14):

o если оператор yield break находится внутри одного или более блоков try, соответствующие им блоки finally выполняются;

o состояние объекта перечислителя меняется на after;

o метод MoveNext возвращает false вызвавшему его, указывая этим, что итерация выполнена.

· Если встретился конец блока итератора:

o состояние объекта перечислителя меняется на after;

o метод MoveNext возвращает false вызвавшему его, указывая этим, что итерация выполнена.

· Если инициируется исключение и распространяется из блока итератора:

o соответствующие блоки finally в теле итератора будут выполняться распространением исключения;

o состояние объекта перечислителя меняется на after;

o распространение исключения продолжается до вызвавшего метод MoveNext.

– Конец работы –

Эта тема принадлежит разделу:

C# Спецификация языка

На сайте allrefs.net читайте: C...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: MoveNext

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Pragma warning
Директива #pragma warning используется для о

System.ValueType
Все типы значений неявно наслед

Decimal
Тип decimal представляет собой 128-разряд

Break, continue и goto
Состояние определенного присва

Checked и unchecked
Операторы checked и unchecked используются для

From, let, where, join и orderby
Выражение запроса с вторым пред

Groupby
Выражение запроса вида from x in e group v by k п

Foreach
Оператор foreach осуществляет перечиl

Continue
Оператор continue начинает новую итера

Checked и unchecked
Операторы checked и unchecked используются для

Using alias
Директива_using_alias вводит идентификат&

Using namespace
Директива_using_namespace импортирует типы, с&#

Classes
Класс — это структура данных, кото&

Partial.
Модификатор partial используется для

Volatile
Если объявление_поля включает м

Current
На свойство Current объекта перечисли

Dispose
Метод Dispose используется для очистк

GetEnumerator
Перечислимый объект предоставл

Partial
Модификатор partial указывает, что объ

System.Array
Тип System.Array является абстрактным базо

Partial
Модификатор partial указывает, что дан

System.Enum
Тип System.Enum — это абстрактный базовый к

System.Exception
Класс System.Exception является базовым типом &

AttributeUsage
Атрибут AttributeUsage используется для опи

Conditional
Атрибут Conditional дает возможность ввод

Obsolete
Атрибут Obsolete используется для поме

COM и Win32
Исполняющая среда .NET предоставля&

NETАтрибут IndexerName
Индексаторы реализованы в .NET с пом

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги