Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Топ:
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Интересное:
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Дисциплины:
2017-10-16 | 218 |
5.00
из
|
Заказать работу |
|
|
Вызов асинхронной функции, возвращающей задачу, приводит к созданию экземпляра типа возвращаемой задачи. Этот экземпляр называется возвращаемой задачей асинхронной функции. Сначала задача находится в состоянии incomplete.
Затем вычисляется тело асинхронной функции до ее приостановки (по достижении выражения await) или прекращения, после чего управление вместе с возвращаемой задачей передается вызывающему объекту.
После прекращения выполнения тела асинхронной функции возвращаемая задача переходит в состояние incomplete:
· если выполнение тела функции прекращается в результате достижения оператора return или конца тела, результирующее значение записывается в возвращаемой задаче, которая переходит в состояние succeeded;
· если выполнение тела функции прекращается в результате неперехваченного исключения (§8.9.5), в возвращаемой задаче записывается исключение и задача переходит в состояние faulted.
Вычисление асинхронной функции, возвращающей значение void
Если асинхронная функция имеет тип возвращаемого значения void, процесс вычисления отличается от описанного выше следующим образом. Поскольку задача не возвращается, функция сообщает о завершении и исключениях в контекст синхронизации текущего потока. Точное определение контекста синхронизации зависит от конкретной реализации, но этот контекст представляет "место", в котором выполняется поток. Контекст синхронизации получает уведомления при начале вычисления асинхронной функции, возвращающей значение void, при его успешном завершении, а также при возникновении неперехваченных исключений.
Это позволяет контексту синхронизации отслеживать количество выполняемых в нем асинхронных функций, возвращающих значение void, и принимать решения относительно обработки получаемых от этих функций исключений.
|
Структуры
Структуры, как и классы, представляют определенным образом организованные данные. В структурах могут содержаться как данные, так и функции. Однако структуры, в отличие от классов, являются типами значений и для них не требуется выделение памяти в куче. Переменная с типом структуры непосредственно содержит данные этой структуры, в то время как переменная с типом класса содержит ссылку на данные, которые считаются объектом.
Структуры особенно удобны для работы с небольшим объемом данных, имеющих семантику значения. Примерами структур являются комплексные числа, точки в системе координат или словарные пары «ключ-значение». Ключевой особенностью таких структур данных является наличие нескольких переменных-членов, для которых не требуется использовать наследование или идентификацию на уровне ссылок и которые удобно реализовывать с использованием семантики значения, когда при присваивании копируется значение, а не ссылка.
Как описано в §4.1.4, доступные в C# простые типы, такие как int, double и bool, фактически являются структурами. Благодаря тому, что эти предопределенные типы являются структурами, в языке C# можно реализовывать новые «простые» типы при помощи переопределения структур и операторов. В конце этой главы приводится два примера таких типов (§11.4).
Объявления структур
Объявление структуры является объявлением типа (§9.6), в котором объявляется новая структура:
struct-declaration:
attributesopt struct-modifiersopt partialopt struct identifier type-parameter-listopt
struct-interfacesopt type-parameter-constraints-clausesopt struct-body;opt
Объявление структуры состоит из необязательного набора атрибутов (§17), за которым следует необязательный набор модификаторов структуры (§11.1.1), необязательный модификатор partial, ключевое слово struct, идентификатор, который указывает имя структуры, необязательная спецификация списка параметров типа (§10.1.3), необязательная спецификация интерфейсов структуры (§11.1.2)), необязательная спецификация конструкций ограничений для параметров типа (§10.1.5), тело структуры (§11.1.4) и точка с запятой (необязательно).
|
Модификаторы структуры
Объявление структуры может включать последовательность модификаторов структуры:
struct-modifiers:
struct-modifier
struct-modifiers struct-modifier
struct-modifier:
new
public
protected
internal
private
Включение одного модификатора в объявление структуры несколько раз приведет к возникновению ошибки времени выполнения.
Модификаторы объявления структуры имеют такое же действие, как модификаторы объявления класса (§10.1).
Модификатор partial
Модификатор partial указывает, что объявление структуры является объявлением частичного типа. Несколько частичных объявлений структуры с одним именем в едином пространстве имен или объявлении типа объединяются в одно объявление структуры с соблюдением правил, указанных в §10.2.
Интерфейсы структуры
Объявление структуры может содержать спецификацию интерфейсов структуры, в этом случае считается, что в структуре непосредственно реализованы заданные типы интерфейсов.
struct-interfaces:
: interface-type-list
Реализация интерфейсов рассматривается более подробно в §13.4.
Тело структуры
Тело структуры определяет членов структуры.
struct-body:
{ struct-member-declarationsopt }
Члены структуры
К членам структуры относятся члены, включенные в объявления членов структуры и члены, унаследованные из System.ValueType.
struct-member-declarations:
struct-member-declaration
struct-member-declarations struct-member-declaration
struct-member-declaration:
constant-declaration
field-declaration
method-declaration
property-declaration
event-declaration
indexer-declaration
operator-declaration
constructor-declaration
static-constructor-declaration
type-declaration
За исключением различий, рассмотренных в §11.3, описания членов класса, содержащиеся в §10.3–§10.14, справедливы и для членов структуры.
|
|
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!