Купить книгу Язык программирования C#. Классика Computers Science. 4-е изд. Хейлсберг BOOMBOOKS книга почтой в интернет магазин книг  
 
 
 
  Купить книгу Язык программирования C#. Классика Computers Science. 4-е изд. Хейлсберг  BOOMBOOKS книга почтой в интернет магазин книг
ICQ 638231463
sale@boombooks.com.ua
SiteHeart
 
 
Ваша корзина:
товаров: 0 шт.
на сумму: 0 грн.
 
 
 
Главная Новинки книг Акции Оплата Доставка книг RSS Контакты
 
 
 

  • Книга C/C++ и MS Visual C++2008 для начинающих. Пахомов (+ дистрибутив на DVD)
    Книга C/C++ и MS Visual C++2008 для начинающих. Пахомов (+ дистрибутив на DVD)
  • Книга Маркетинг менеджмент. Экспресс-курс. 3-е изд. Котлер
    Книга Маркетинг менеджмент. Экспресс-курс. 3-е изд. Котлер
  • Книга Энциклопедия ПК для школьника. Фельдман
    Книга Энциклопедия ПК для школьника. Фельдман
  • Книга Microsoft ASP.NET 2.0. Углубленное изучение. Эспозито
    Книга Microsoft ASP.NET 2.0. Углубленное изучение. Эспозито
  • Книга Поддержка корпоративных пользователей Windows Vista (+CD). Нортроп
    Книга Поддержка корпоративных пользователей Windows Vista (+CD). Нортроп
  • Книга Windows XP. Справочник. Карп
    Книга Windows XP. Справочник. Карп
  • Книга Конфликты в организациях. Регнет
    Книга Конфликты в организациях. Регнет
  • Книга Windows Server 2008 Server Core. Справочник администратора. Таллоч
    Книга Windows Server 2008 Server Core. Справочник администратора. Таллоч
  • Книга Анкетирование. Айан Брейс
    Книга Анкетирование. Айан Брейс
  • Книга HTML, XHTML и CSS на 100 %. Квинт
    Книга HTML, XHTML и CSS на 100 %. Квинт
  • Книга Самоучитель Linux. Орлов
    Книга Самоучитель Linux. Орлов
  • Книга ActionScript 2 для Macromedia Flash 8. Фирменное руководство от Macromedia. Петер деХан
    Книга ActionScript 2 для Macromedia Flash 8. Фирменное руководство от Macromedia. Петер деХан
  • Книга Word 2003. Практическое руководство. Символоков
    Книга Word 2003. Практическое руководство. Символоков
  • Продвижение в социальных сетях. Кремнев
    Продвижение в социальных сетях. Кремнев
  • Книга Основы маркетинга. Брассингтон, Петтитт
    Книга Основы маркетинга. Брассингтон, Петтитт
  • Книга Корпоративное управление. Классика HBR. Куницын
    Книга Корпоративное управление. Классика HBR. Куницын
  • Книга Конкурентная разведка. Как распознавать внешние риски и управлять ситуацией. Джилад
    Книга Конкурентная разведка. Как распознавать внешние риски и управлять ситуацией. Джилад
  • Vmware vSphere 4: полное руководство. Скотт Лоу
    Vmware vSphere 4: полное руководство. Скотт Лоу
  • Книга Оценка финансового состояния предприятия: методики и приемы. Прусаков
    Книга Оценка финансового состояния предприятия: методики и приемы. Прусаков
  • C# 4.0: полное руководство. Шилдт
    C# 4.0: полное руководство. Шилдт

 
     
Книги и учебники по рубрикам
 Купить книги компьютерные
   Книги CAD-ы
   Книги 3d MAX
   Книги ACCESS
   Книги Adobe
   Книги Assembler
   Книги Basic
   Книги C, C++,С#
   Книги Delphi
   Книги EXCEL
   Книги HTML,XML, Dynamic,CSS
   Книги Java
   Книги JavaScript
   Книги Linux
   Книги Maple
   Книги Maya
   Книги OFFICE
   Книги Oracle
   Книги Pascal
   Книги Perl
   Книги PHP
   Книги SQL
   Книги UML
   Книги Unix
   Книги VBA
   Книги Visual Studio
   Книги WEB дизайн
   Книги Windows 2000
   Книги Windows Server
   Книги Windows Vista
   Книги Windows XP
   Книги WORD
   Книги Алгоритмы
   Книги 1C Учет
   Книги Издательские системы
   Купить книги по информатике
   Книги по компьютерной безопасности
   Купить книги по компьютерному железу
   Книги компьютерные сети
   Книги мультимедиа
   Книги Нейронные сети
   Книги ООП
   Книги Примочки программирования
   Книги по программированию для WEB
   Книги Прочая графика
   Книги прочая разработка
   Книги прочие CAD
   Книги прочие базы данных
   Книги прочие ОС
   Книги прочие офисное ПО
   Купить книги самоучители
   Книги Цифровое фото
   Заказ книг электронная коммерция
   Книги Corel
   Книги MAC
   Книги Windows 7
   Книги Прочее для интернет
   Книги Windows 8
   Книги SEO оптимизация и продвижение
   Книги Языки программирования
 Заказ книг по психологии
   Купить книги по психоанализу
   Заказ книг по психологии
   Купить книги по психологии бизнеса
   Книги психология женский клуб
   Заказ книг психология НЛП
   Купить книги психология общая
   Книги психология популярная
   Заказ книг психология прикладная
   Книги психология прочее
   Книги психология психотерапия
   Заказ книг психология социальная
   Книги психология тест
   Книги психология тренинг
 Купить книги по бизнесу и маркетингу
   Книги банки,деньги,кредит
   Купить книги по бизнесу
   Заказ книг по бухучету
   Книги инвестиционный бизнес
   Книги коммерция и продажи
   Купить книги по маркетингу и рекламе
   Заказ книг по менеджменту
   Купить книги по праву
   Заказ книг по предпринимательству
   Купить книги по финансам
   Заказ книг по экономике
   Купить книги по экономической теории
 Купить учебники
 Книги Гуманитарные науки
 Книги для детей и родителей



 
  Купить книги компьютерные - Книги C, C++,С#
Купить книгу  Язык программирования C#. Классика Computers Science. 4-е изд. Хейлсберг
 
 
ISBN 978-5-459-00283-6
Язык программирования C#. Классика Computers Science. 4-е изд. Хейлсберг

367 грн.

SiteHeart
 Купить Язык программирования C#. Классика Computers Science. 4-е изд. Хейлсберг      Купить Язык программирования C#. Классика Computers Science. 4-е изд. Хейлсберг

год-2012

784 страницы

 

Перед вами - IV-е издание главной книжки по языку C#, написанной легендой программирования - Андерсом Хейлсбергом, архитектором C#, Delphi и Turbo Pascal, совместно с другими экспертами, входившими в группу девелоперов C# компании Майкрософт. Издание Язык программирования C#. Классика Computers Science. 4-е изд. Хейлсберг  является максимально полным описанием языка и наиболее авторитетным источником информации по этой теме, построенным в формате сборника спецификаций, включающих в себя описание синтаксиса, сопутствующие материалы и примеры, и образцы кода. Эта книга - особого рода "библия" разработчика, которая легко может заменить как MSDN, так и иные книжки по C#. IV-е издание содержит описание новых особенностей C# 4.0, включая динамическое связывание, именованные и необязательные характеристики, и контравариантные и ковариантные обобщенные типы. Цель таких новшеств - расширение возможностей C# для взаимодействия с объектами, не относящимися к платформе .NET. Отличительная особенность нового издания тоже заключается в том, что каждая глава книжки содержит широкие комментарии, написанные известными "гуру" программирования, такими как Джон Скит, Джозеф Альбахари, Билл Вагнер, Кристиан Нейгел, Эрик Липперт и др.

 

Оглавление книги

Язык программирования C#. Классика Computers Science. 4-е изд. Хейлсберг 

 

Предисловие   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  21
К читателю   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Об авторах   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Об авторах комментариев   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Глава 1. Введение  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.1. Здравствуй, Мир  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
1.2. Структура программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
1.3. Типы и переменные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
1.4. Выражения  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
1.5. Операторы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
1.6. Классы и объекты. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
1.6.1. Элементы класса  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
1.6.2. Доступность  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
1.6.3. Параметры-типы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
1.6.4. Базовые классы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
1.6.5. Поля  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
1.6.6. Методы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
1.6.6.1. Параметры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
1.6.6.2. Тело метода и локальные переменные  . . . . . . . . . . . . . . . . . . . . .55
1.6.6.3. Статические методы и методы экземпляра  . . . . . . . . . . . . . . . . .56
1.6.6.4. Виртуальные, переопределенные и абстрактные методы . . . . .57
1.6.6.5. Перегрузка методов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .60
1.6.7. Другие функциональные элементы класса  . . . . . . . . . . . . . . . . . . . . . . .62
1.6.7.1. Конструкторы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64
1.6.7.2. Свойства. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64
1.6.7.3. Индексаторы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
1.6.7.4. События  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68
1.6.7.5. Операции  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
1.6.7.6. Деструкторы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
1.7. Структуры  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . 71
1.8. Массивы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . 73
1.9. Интерфейсы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75
1.10. Перечисления. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
1.11. Делегаты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .79
1.12. Атрибуты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Глава 2. Лексическая структура . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
2.1. Программы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83
2.2. Грамматики. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83
2.2.1. Система обозначений  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83
2.2.2. Лексическая грамматика. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
2.2.3. Синтаксическая грамматика. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
2.3. Лексический анализ  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
2.3.1. Символы конца строки  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
2.3.2. Комментарии  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
2.3.3. Пробельные символы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88
2.4. Лексемы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . 88
2.4.1. Управляющие последовательности Unicode  . . . . . . . . . . . . . . . . . . . . . .88
2.4.2. Идентификаторы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
2.4.3. Ключевые слова  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
2.4.4. Литералы (константы)  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93
2.4.4.1. Булевские константы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93
2.4.4.2. Целочисленные константы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93
2.4.4.3. Вещественные константы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95
2.4.4.4. Символьные константы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
2.4.4.5. Строковые константы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97
2.4.4.6. Константа null  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100
2.4.5. Знаки операций и пунктуации  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100
2.5. Директивы препроцессора  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101
2.5.1. Символы условной компиляции. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102
2.5.2. Выражения препроцессора  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103
2.5.3. Директивы объявлений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103
2.5.4. Директивы условной компиляции  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105
2.5.5. Директивы диагностики  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .108
2.5.6. Директивы region  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109
2.5.7. Директивы line. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109
2.5.8. Директива pragma  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110
2.5.8.1. Предупреждения pragma warning . . . . . . . . . . . . . . . . . . . . . . . . .111
Глава 3. Основные понятия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  113
3.1. Запуск приложения  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113
3.2. Завершение работы приложения  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114
3.3. Объявления. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115
3.4. Элементы пространств имен и типов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118
3.4.1. Элементы пространств имен  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119
3.4.2. Элементы структур. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119
3.4.3. Элементы перечислений. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
3.4.4. Элементы классов  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
3.4.5. Элементы интерфейсов  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
3.4.6. Элементы массивов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
3.4.7. Элементы делегатов  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
3.5. Доступ к элементам. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121
3.5.1. Объявление вида доступа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121
3.5.2. Области доступности. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124
3.5.3. Доступ protected для элементов экземпляров  . . . . . . . . . . . . . . . . . . .127
3.5.4. Ограничения доступа. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
3.6. Сигнатуры и перегрузка  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130
3.7. Области видимости . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133
3.7.1. Скрытие имен  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136
3.7.1.1. Скрытие в результате вложения . . . . . . . . . . . . . . . . . . . . . . . . . .137
3.7.1.2. Скрытие в результате наследования . . . . . . . . . . . . . . . . . . . . . .138
3.8. Имена пространств имен и типов  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140
3.8.1. Полные имена . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143
3.9. Автоматическое управление памятью  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .144
3.10. Порядок выполнения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149
Глава 4. Типы   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  151
4.1. Типы-значения  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151
4.1.1. Тип System.ValueType. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152
4.1.2. Конструкторы по умолчанию  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153
4.1.3. Структурные типы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154
4.1.4. Простые типы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155
4.1.5. Целочисленные типы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156
4.1.6. Типы с плавающей точкой . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158
4.1.7. Десятичный тип  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161
4.1.8. Булевский тип . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162
4.1.9. Перечислимые типы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163
4.1.10. Обнуляемые типы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163
4.2. Ссылочные типы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164
4.2.1. Классы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165
4.2.2. Тип object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166
4.2.3. Тип dynamic  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166
4.2.4. Тип string  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166
4.2.5. Интерфейсы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166
4.2.6. Массивы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166
4.2.7. Делегаты  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167
4.3. Упаковка и распаковка  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167
4.3.1. Упаковка. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168
4.3.2. Распаковка. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .170
4.4. Сконструированные типы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .172
4.4.1. Аргументы-типы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173
4.4.2. Открытые и закрытые типы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173
4.4.3. Ограниченные и неограниченные типы  . . . . . . . . . . . . . . . . . . . . . . . . .174
4.4.4. Соблюдение ограничений. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174
4.5. Параметры-типы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175
4.6. Типы деревьев выражений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .176
4.7. Тип dynamic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177
Глава 5. Переменные   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  179
5.1. Категории переменных. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179
5.1.1. Статические переменные  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180
5.1.2. Переменные экземпляра  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180
5.1.2.1. Переменные экземпляра в классах  . . . . . . . . . . . . . . . . . . . . . . .180
5.1.2.2. Переменные экземпляра в структурах  . . . . . . . . . . . . . . . . . . . .181
5.1.3. Элементы массива . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181
5.1.4. Параметры-значения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181
5.1.5. Параметры-ссылки  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .182
5.1.6. Выходные параметры  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183
5.1.7. Локальные переменные  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183
5.2. Значение по умолчанию  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .185
5.3. Явное присваивание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .186
5.3.1. Инициализированные переменные. . . . . . . . . . . . . . . . . . . . . . . . . . . . .187
5.3.2. Неинициализированные переменные. . . . . . . . . . . . . . . . . . . . . . . . . . .187
5.3.3. Точные правила для определения явного присваивания. . . . . . . . . . .188
5.3.3.1. Общие правила для операторов. . . . . . . . . . . . . . . . . . . . . . . . . .188
5.3.3.2. Блок, операторы checked и unchecked  . . . . . . . . . . . . . . . . . . . .189
5.3.3.3. Оператор-выражение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .189
5.3.3.4. Операторы объявления  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .189
5.3.3.5. Условный оператор. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190
5.3.3.6. Оператор выбора  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190
5.3.3.7. Оператор цикла while  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190
5.3.3.8. Оператор цикла do  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .191
5.3.3.9. Оператор цикла for  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .191
5.3.3.10. Операторы перехода break, continue и goto . . . . . . . . . . . . . . .191
5.3.3.11. Оператор throw  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .191
5.3.3.12. Оператор return . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192
5.3.3.13. Оператор try-catch  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192
5.3.3.14. Оператор try-fnally  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192
5.3.3.15. Оператор try-catch-finally. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .193
5.3.3.16. Оператор foreach  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194
5.3.3.17. Оператор using  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194
5.3.3.18. Оператор lock  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194
5.3.3.19. Оператор yield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .194
5.3.3.20. Общие правила для простых выражений  . . . . . . . . . . . . . . . . .195
5.3.3.21. Общие правила для выражений с вложенными 
 выражениями. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .195
5.3.3.22. Выражения вызова и выражения создания объекта . . . . . . . .195
5.3.3.23. Выражения простого присваивания  . . . . . . . . . . . . . . . . . . . . .196
5.3.3.24. &&-выражения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196
5.3.3.25. Выражения ||. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197
5.3.3.26. Выражения ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198
5.3.3.27. Выражения ??  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198
5.3.3.28. Выражения ?: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198
5.3.3.29. Анонимные функции. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199
5.4. Ссылки на переменные. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .200
5.5. Атомарность ссылок на переменные  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .200
Глава 6. Приведение типов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  201
6.1. Неявные приведения типов  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .202
6.1.1. Тождественные преобразования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .202
6.1.2. Неявные приведения арифметических типов  . . . . . . . . . . . . . . . . . . . .203
6.1.3. Неявные приведения перечислений . . . . . . . . . . . . . . . . . . . . . . . . . . . .203
6.1.4. Неявные приведения обнуляемых типов  . . . . . . . . . . . . . . . . . . . . . . . .204
6.1.5. Неявные приведения литерала null . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205
6.1.6. Неявные приведения ссылочных типов  . . . . . . . . . . . . . . . . . . . . . . . . .205
6.1.7. Преобразования упаковки  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207
6.1.8. Неявные приведения типа dynamic . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207
6.1.9. Неявные приведения константных выражений  . . . . . . . . . . . . . . . . . . .208
6.1.10. Неявные приведения параметров-типов . . . . . . . . . . . . . . . . . . . . . . .209
6.1.11. Определенные пользователем неявные приведения типов  . . . . . . .210
6.1.12. Приведения анонимной функции и группы методов  . . . . . . . . . . . . .210
6.2. Явные приведения типов  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210
6.2.1. Явные приведения арифметических типов  . . . . . . . . . . . . . . . . . . . . . .210
6.2.2. Явные приведения перечислений  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .213
6.2.3. Явные приведения обнуляемых типов  . . . . . . . . . . . . . . . . . . . . . . . . . .213
6.2.4. Явные приведения ссылочных типов  . . . . . . . . . . . . . . . . . . . . . . . . . . .214
6.2.5. Преобразование распаковки  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215
6.2.6. Явные приведения типа dynamic  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .216
6.2.7. Явное приведение параметров-типов  . . . . . . . . . . . . . . . . . . . . . . . . . .217
6.2.8. Определенные пользователем явные приведения типов  . . . . . . . . . .218
6.3. Стандартные приведения типов  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .219
6.3.1. Стандартные неявные преобразования . . . . . . . . . . . . . . . . . . . . . . . . .219
6.3.2. Стандартные явные преобразования  . . . . . . . . . . . . . . . . . . . . . . . . . . .219
6.4. Приведения типов, определенные пользователем  . . . . . . . . . . . . . . . . . . . . .220
6.4.1. Допустимые приведения типов, определенные пользователем  . . . .220
6.4.2. Повышающие (lifted) приведения типов . . . . . . . . . . . . . . . . . . . . . . . . .220
6.4.3. Выполнение определенных пользователем приведений  . . . . . . . . . .221
6.4.4. Определенные пользователем неявные приведения типов  . . . . . . . .222
6.4.5. Определенные пользователем явные приведения типов  . . . . . . . . . .223
6.5. Приведения анонимных функций  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225
6.5.1. Выполнение приведений анонимных функций к типам делегатов. . .227
6.5.2. Выполнение приведений анонимных функций 
к деревьям выражений  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .228
6.5.3. Пример реализации. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .228
6.6. Приведения групп методов  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232
Глава 7. Выражения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  236
7.1. Классификация выражений  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .236
7.1.1. Значение выражений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .238
7.2. Статическое и динамическое связывание. . . . . . . . . . . . . . . . . . . . . . . . . . . . .239
7.2.1. Время связывания  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .240
7.2.2. Динамическое связывание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .240
7.2.3. Типы составных частей выражений . . . . . . . . . . . . . . . . . . . . . . . . . . . . .242
7.3. Операции  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .243
7.3.1. Приоритет и ассоциативность операций  . . . . . . . . . . . . . . . . . . . . . . . .243
7.3.2. Перегрузка операций  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245
7.3.3. Разрешение перегрузки унарных операций  . . . . . . . . . . . . . . . . . . . . .247
7.3.4. Разрешение перегрузки бинарной операции  . . . . . . . . . . . . . . . . . . . .247
7.3.5. Набор определенных пользователем операций . . . . . . . . . . . . . . . . . .248
7.3.6. Числовое расширение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248
7.3.6.1. Унарное числовое расширение  . . . . . . . . . . . . . . . . . . . . . . . . . .249
7.3.6.2. Бинарное числовое расширение  . . . . . . . . . . . . . . . . . . . . . . . . .249
7.3.7. Расширенные операции  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .250
7.4. Поиск элемента  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251
7.4.1. Базовые типы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .254
7.5. Функциональные элементы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .254
7.5.1. Списки аргументов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257
7.5.1.1. Соответствующие параметры. . . . . . . . . . . . . . . . . . . . . . . . . . . .258
7.5.1.2. Вычисление списка аргументов во время выполнения 
программы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .260
7.5.2. Выведение типов  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262
7.5.2.1. Первая фаза. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .264
7.5.2.2. Вторая фаза . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265
7.5.2.3. Входные типы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265
7.5.2.4. Выходные типы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265
7.5.2.5. Зависимость  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .265
7.5.2.6. Выведение выходного типа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .266
7.5.2.7. Явное выведение типа параметра  . . . . . . . . . . . . . . . . . . . . . . . .266
7.5.2.8. Точное выведение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .266
7.5.2.9. Выведение нижней границы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .267
7.5.2.10. Выведение верхней границы  . . . . . . . . . . . . . . . . . . . . . . . . . . .268
7.5.2.11. Фиксация  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .269
7.5.2.12. Выведенный тип возвращаемого значения  . . . . . . . . . . . . . . .270
7.5.2.13. Выведение типа для преобразования группы методов  . . . . .271
7.5.2.14. Нахождение наилучшего общего типа для набора 
 выражений  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .272
7.5.3. Разрешение перегрузки  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .272
7.5.3.1. Подходящий функциональный элемент  . . . . . . . . . . . . . . . . . . .273
7.5.3.2. Лучший функциональный элемент . . . . . . . . . . . . . . . . . . . . . . . .274
7.5.3.3. Лучшее приведение из выражения  . . . . . . . . . . . . . . . . . . . . . . .276
7.5.3.4. Лучшее приведение из типа  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276
7.5.3.5. Лучший целевой объект приведения . . . . . . . . . . . . . . . . . . . . . .276
7.5.3.6. Перегрузка в обобщенных классах  . . . . . . . . . . . . . . . . . . . . . . .277
7.5.4. Проверка динамического разрешения перегрузки во время 
 компиляции. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .277
7.5.5. Вызов функционального элемента  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .278
7.5.5.1. Вызовы для упакованных экземпляров . . . . . . . . . . . . . . . . . . . .280
7.6. Первичные выражения  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .280
7.6.1. Литералы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281
7.6.2. Простые имена  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281
7.6.2.1. Инвариантное значение в блоках . . . . . . . . . . . . . . . . . . . . . . . . .283
7.6.3. Выражения в скобках . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .285
7.6.4. Доступ к элементу  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .285
7.6.4.1. Идентичные простые имена и имена типов  . . . . . . . . . . . . . . . .288
7.6.4.2. Грамматическая неоднозначность. . . . . . . . . . . . . . . . . . . . . . . .288
7.6.5. Выражения вызова. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .289
7.6.5.1. Вызов метода  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .290
7.6.5.2. Вызов метода расширения  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .294
7.6.5.3. Вызов делегата  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299
7.6.6. Доступ к элементу массива  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299
7.6.6.1. Доступ к массиву. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300
7.6.6.2. Доступ к индексатору . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .301
7.6.7. this-доступ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302
7.6.8. Base-доступ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .303
7.6.9. Постфиксные инкрементные и декрементные операции  . . . . . . . . . .304
7.6.10. Операция new . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .306
7.6.10.1. Выражения создания объекта. . . . . . . . . . . . . . . . . . . . . . . . . . .306
7.6.10.2. Инициализаторы объектов  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .308
7.6.10.3. Инициализаторы коллекций  . . . . . . . . . . . . . . . . . . . . . . . . . . . .311
7.6.10.4. Выражения создания массива  . . . . . . . . . . . . . . . . . . . . . . . . . .313
7.6.10.5. Выражения создания делегата. . . . . . . . . . . . . . . . . . . . . . . . . .315
7.6.10.6. Выражение создания анонимного объекта  . . . . . . . . . . . . . . .317
7.6.11. Операция typeof  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .319
7.6.12. Операции checked и unchecked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322
7.6.13. Выражения значений по умолчанию . . . . . . . . . . . . . . . . . . . . . . . . . . .325
7.6.14. Выражения анонимных методов  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .325
7.7. Унарные операции. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .325
7.7.1. Унарная операция плюс  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326
7.7.2. Унарная операция минус. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326
7.7.3. Логическая операция отрицания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .327
7.7.4. Операция поразрядного дополнения  . . . . . . . . . . . . . . . . . . . . . . . . . . .327
7.7.5. Префиксные инкрементные и декрементные операции  . . . . . . . . . . .328
7.7.6. Выражения приведения  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329
7.8. Арифметические операции  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .331
7.8.1. Операция умножения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .331
7.8.2. Операция деления  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .333
7.8.3. Операция взятия остатка от деления  . . . . . . . . . . . . . . . . . . . . . . . . . . .334
7.8.4. Операция сложения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336
7.8.5. Операция вычитания  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .339
7.9. Операции сдвига  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .341
7.10. Операции отношения и операции проверки типа  . . . . . . . . . . . . . . . . . . . . .342
7.10.1. Операции сравнения для целочисленных типов . . . . . . . . . . . . . . . . .343
7.10.2. Операции сравнения для типов с плавающей точкой  . . . . . . . . . . . .344
7.10.3. Операции сравнения для десятичного типа  . . . . . . . . . . . . . . . . . . . .346
7.10.4. Операции равенства для булевского типа . . . . . . . . . . . . . . . . . . . . . .346
7.10.5. Операции сравнения для перечислений  . . . . . . . . . . . . . . . . . . . . . . .346
7.10.6. Операции равенства для ссылочных типов  . . . . . . . . . . . . . . . . . . . . .347
7.10.7. Операции равенства для строкового типа . . . . . . . . . . . . . . . . . . . . . .349
7.10.8. Операции равенства для типов делегатов . . . . . . . . . . . . . . . . . . . . . .349
7.10.9. Операции равенства и константа null  . . . . . . . . . . . . . . . . . . . . . . . . . .350
7.10.10. Операция is . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .350
7.10.11. Операция as  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .351
7.11. Логические операции  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .353
7.11.1. Логические операции для целочисленных типов  . . . . . . . . . . . . . . . .353
7.11.2. Логические операции для перечислений. . . . . . . . . . . . . . . . . . . . . . .354
7.11.3. Булевские логические операции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .354
7.11.4. Обнуляемые булевские логические операции  . . . . . . . . . . . . . . . . . .354
7.12. Условные логические операции  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .355
7.12.1. Булевские условные логические операции  . . . . . . . . . . . . . . . . . . . . .356
7.12.2. Определенные пользователем условные логические операции  . . .356
7.13. Операция объединения с нулем  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .357
7.14. Условная операция  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .359
7.15. Выражения анонимных функций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361
7.15.1. Сигнатуры анонимной функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .363
7.15.2. Тело анонимной функции  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .364
7.15.3. Разрешение перегрузки  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .365
7.15.4. Анонимные функции и динамическое связывание . . . . . . . . . . . . . . .366
7.15.5. Внешние переменные  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .366
7.15.5.1. Захваченные внешние переменные. . . . . . . . . . . . . . . . . . . . . .366
7.15.5.2. Инстанцирование локальных переменных  . . . . . . . . . . . . . . . .367
7.15.6. Вычисление выражений анонимных функций . . . . . . . . . . . . . . . . . . .370
7.16. Выражения запроса  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .370
7.16.1. Неоднозначность в выражениях запроса . . . . . . . . . . . . . . . . . . . . . . .372
7.16.2. Преобразование выражений запроса. . . . . . . . . . . . . . . . . . . . . . . . . .373
7.16.2.1. Конструкции select и GroupBy с продолжениями. . . . . . . . . . .374
7.16.2.2. Явно определенные типы переменных диапазона  . . . . . . . . .375
7.16.2.3. Вырожденные выражения запросов  . . . . . . . . . . . . . . . . . . . . .376
7.16.2.4. Конструкции from, let, where, join и orderby. . . . . . . . . . . . . . . .376
7.16.2.5. Конструкции select  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .380
7.16.2.6. Конструкция GroupBy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .380
7.16.2.7. Прозрачные идентификаторы. . . . . . . . . . . . . . . . . . . . . . . . . . .380
7.16.3. Паттерн выражения запроса  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .382
7.17. Операции присваивания  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .384
7.17.1. Простое присваивание  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .385
7.17.2. Сложное присваиваивание. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .388
7.17.3. Присваивание событий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .389
7.18. Выражения  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .390
7.19. Константные выражения  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .390
7.20. Булевские выражения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .392
Глава 8. Операторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  393
8.1. Конечные точки и достижимость. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .393
8.2. Блоки  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .396
8.2.1. Списки операторов  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .396
8.3. Пустой оператор  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .397
8.4. Помеченные операторы  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .399
8.5. Операторы объявления. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .400
8.5.1. Объявление локальных переменных . . . . . . . . . . . . . . . . . . . . . . . . . . . .400
8.5.2. Объявление локальных констант . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .403
8.6. Операторы-выражения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .404
8.7. Операторы выбора  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .405
8.7.1. Оператор if. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .405
8.7.2. Оператор switch  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .406
8.8. Операторы цикла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .411
Теги: Язык | | программирования | C# | | Классика | Computers | Science | | | 4 | е | изд | | Хейлсберг | |

Share |
 
     



    Купить книги в разделе Купить книги компьютерные - Книги C, C++,С#  
 
Книга C#. Ватсон
Купить Книга C#. Ватсон C# - это новый фирменный язык программирования компании Microsoft, предназначенный для ее новой платформы .NET Framework, которая состоит из среды выполнения, управляющей работой программ, и полного набора библиотек классов, позволяющих решить практически любую задачу, какую только можно придумать. И хотя программы для .NET могут писаться на самых разнообразных языках программирования, C# является единственным языком, который был разработан специально для .NET Framework и который, таким образом, становится основным языком программирования для создания .NET-приложений на многие годы вперед.
Книга C# в задачах и примерах. Культин (+ CD)
Купить Книга C# в задачах и примерах. Культин (+ CD) Книга представляет собой сборник задач и программ на языке С#. Примеры и задачи различной сложности - от простейших до приложений работы с графикой, мультимедиа и базами данных - демонстрируют назначение базовых компонентов, раскрывают тонкости разработки .NET-приложений в Borland Developer Studio или Turbo С#.
 
     


     
 
 
Главная Новинки книг Акции Оплата Доставка книг RSS Контакты
 
 
BOOMBOOKs 2009-2011 Создание сайтов & Раскрутка сайтов SKYLOGIC