Язык программирования C# - Перед вами - четвертое издание главной книги по языку C#, написанной легендой программирования - Андерсом Хейлсбергом, архитектором C#, Delphi и Turbo Pascal, совместно с другими специалистами, входившими в группу разработчиков C# компании Microsoft. Издание является наиболее полным описанием языка и самым авторитетным источником информации по этой теме, построенным в формате сборника спецификаций, включающих в себя описание синтаксиса, сопутствующие материалы и примеры, а также образцы кода. Эта книга - своего рода "библия" разработчика, которая с легкостью может заменить как MSDN, так и остальные книги по C#. Четвертое издание содержит описание новых особенностей C# 4.0, включая динамическое связывание, именованные и необязательные параметры, а также ковариантные и контравариантные обобщенные типы. Цель этих новшеств - расширение возможностей C# для взаимодействия с объектами, не относящимися к платформе .NET. Отличительная особенность нового издания также состоит в том, что каждая глава книги содержит обширные комментарии, написанные известными "гуру" программирования, такими как Джон Скит, Джозеф Альбахари, Билл Вагнер, Кристиан Нейгел, Эрик Липперт и другими.
Название: Язык программирования C# Автор: Хейлсберг А., Торгерсен М., Вилтамут С., Голд П Издательство: Питер Год: 2012 Страниц: 784 Формат: PDF Размер: 3,28 МБ ISBN: 978-5-459-00283-6 Качество: Отличное Язык: Русский
Содержание:
Предисловие К читателю Об авторах Об авторах комментариев Глава 1. Введение 1.1. Здравствуй, Мир 1.2. Структура программы 1.3. Типы и переменные 1.4. Выражения 1.5. Операторы 1.6. Классы и объекты 1.6.1. Элементы класса 1.6.2. Доступность 1.6.3. Параметры-типы 1.6.4. Базовые классы 1.6.5. Поля 1.6.6. Методы 1.6.6.1. Параметры 1.6.6.2. Тело метода и локальные переменные 1.6.6.3. Статические методы и методы экземпляра 1.6.6.4. Виртуальные, переопределенные и абстрактные методы 1.6.6.5. Перегрузка методов 1.6.7. Другие функциональные элементы класса 1.6.7.1. Конструкторы 1.6.7.2. Свойства 1.6.7.3. Индексаторы 1.6.7.4. События 1.6.7.5. Операции 1.6.7.6. Деструкторы 1.7. Структуры 1.8. Массивы 1.9. Интерфейсы 1.10. Перечисления 1.11. Делегаты 1.12. Атрибуты Глава 2. Лексическая структура 2.1. Программы 2.2. Грамматики 2.2.1. Система обозначений 2.2.2. Лексическая грамматика 2.2.3. Синтаксическая грамматика 2.3. Лексический анализ 2.3.1. Символы конца строки 2.3.2. Комментарии 2.3.3. Пробельные символы 2.4. Лексемы 2.4.1. Управляющие последовательности Unicode 2.4.2. Идентификаторы 2.4.3. Ключевые слова 2.4.4. Литералы (константы) 2.4.4.1. Булевские константы 2.4.4.2. Целочисленные константы 2.4.4.3. Вещественные константы 2.4.4.4. Символьные константы 2.4.4.5. Строковые константы 2.4.4.6. Константа null 2.4.5. Знаки операций и пунктуации 2.5. Директивы препроцессора 2.5.1. Символы условной компиляции 2.5.2. Выражения препроцессора 2.5.3. Директивы объявлений 2.5.4. Директивы условной компиляции 2.5.5. Директивы диагностики 2.5.6. Директивы region 2.5.7. Директивы line 2.5.8. Директива pragma 2.5.8.1. Предупреждения pragma warning Глава 3. Основные понятия 3.1. Запуск приложения 3.2. Завершение работы приложения 3.3. Объявления 3.4. Элементы пространств имен и типов 3.4.1. Элементы пространств имен 3.4.2. Элементы структур 3.4.3. Элементы перечислений 3.4.4. Элементы классов 3.4.5. Элементы интерфейсов 3.4.6. Элементы массивов 3.4.7. Элементы делегатов 3.5. Доступ к элементам 3.5.1. Объявление вида доступа 3.5.2. Области доступности 3.5.3. Доступ protected для элементов экземпляров 3.5.4. Ограничения доступа 3.6. Сигнатуры и перегрузка 3.7. Области видимости 3.7.1. Скрытие имен 3.7.1.1. Скрытие в результате вложения 3.7.1.2. Скрытие в результате наследования 3.8. Имена пространств имен и типов 3.8.1. Полные имена 3.9. Автоматическое управление памятью 3.10. Порядок выполнения Глава 4. Типы 4.1. Типы-значения 4.1.1. Тип System. ValueType 4.1.2. Конструкторы по умолчанию 4.1.3. Структурные типы 4.1.4. Простые типы 4.1.5. Целочисленные типы 4.1.6. Типы с плавающей точкой 4.1.7. Десятичный тип 4.1.8. Булевский тип 4.1.9. Перечислимые типы 4.1.10. Обнуляемые типы 4.2. Ссылочные типы 4.2.1. Классы 4.2.2. Тип object 4.2.3. Тип dynamic 4.2.4. Тип string 4.2.5. Интерфейсы 4.2.6. Массивы 4.2.7. Делегаты 4.3. Упаковка и распаковка 4.3.1. Упаковка 4.3.2. Распаковка 4.4. Сконструированные типы 4.4.1. Аргументы-типы 4.4.2. Открытые и закрытые типы 4.4.3. Ограниченные и неограниченные типы 4.4.4. Соблюдение ограничений 4.5. Параметры-типы 4.6. Типы деревьев выражений 4.7. Тип dynamic Глава 5. Переменные 5.1. Категории переменных 5.1.1. Статические переменные 5.1.2. Переменные экземпляра 5.1.2.1. Переменные экземпляра в классах 5.1.2.2. Переменные экземпляра в структурах 5.1.3. Элементы массива 5.1.4. Параметры-значения 5.1.5. Параметры-ссылки 5.1.6. Выходные параметры 5.1.7. Локальные переменные 5.2. Значение по умолчанию 5.3. Явное присваивание 5.3.1. Инициализированные переменные 5.3.2. Неинициализированные переменные 5.3.3. Точные правила для определения явного присваивания 5.3.3.1. Общие правила для операторов 5.3.3.2. Блок, операторы checked и unchecked 5.3.3.3. Оператор-выражение 5.3.3.4. Операторы объявления 5.3.3.5. Условный оператор 5.3.3.6. Оператор выбора 5.3.3.7. Оператор цикла while 5.3.3.8. Оператор цикла do 5.3.3.9. Оператор цикла for 5.3.3.10. Операторы перехода break, continue и goto 5.3.3.11. Оператор throw 5.3.3.12. Оператор return 5.3.3.13. Оператор try-catch 5.3.3.14. Оператор try-fnally 5.3.3.15. Оператор try-catch-finally 5.3.3.16. Оператор foreach 5.3.3.17. Оператор using 5.3.3.18. Оператор lock 5.3.3.19. Оператор yield 5.3.3.20. Общие правила для простых выражений 5.3.3.21. Общие правила для выражений с вложенными выражениями 5.3.3.22. Выражения вызова и выражения создания объекта 5.3.3.23. Выражения простого присваивания 5.3.3.24. &&-выражения 5.3.3.25. Выражения || 5.3.3.26. Выражения! 5.3.3.27. Выражения?? 5.3.3.28. Выражения?: 5.3.3.29. Анонимные функции 5.4. Ссылки на переменные 5.5. Атомарность ссылок на переменные Глава 6. Приведение типов 6.1. Неявные приведения типов 6.1.1. Тождественные преобразования 6.1.2. Неявные приведения арифметических типов 6.1.3. Неявные приведения перечислений 6.1.4. Неявные приведения обнуляемых типов 6.1.5. Неявные приведения литерала null 6.1.6. Неявные приведения ссылочных типов 6.1.7. Преобразования упаковки 6.1.8. Неявные приведения типа dynamic 6.1.9. Неявные приведения константных выражений 6.1.10. Неявные приведения параметров-типов 6.1.11. Определенные пользователем неявные приведения типов 6.1.12. Приведения анонимной функции и группы методов 6.2. Явные приведения типов 6.2.1. Явные приведения арифметических типов 6.2.2. Явные приведения перечислений 6.2.3. Явные приведения обнуляемых типов 6.2.4. Явные приведения ссылочных типов 6.2.5. Преобразование распаковки 6.2.6. Явные приведения типа dynamic 6.2.7. Явное приведение параметров-типов 6.2.8. Определенные пользователем явные приведения типов 6.3. Стандартные приведения типов 6.3.1. Стандартные неявные преобразования 6.3.2. Стандартные явные преобразования 6.4. Приведения типов, определенные пользователем 6.4.1. Допустимые приведения типов, определенные пользователем 6.4.2. Повышающие (lifted) приведения типов 6.4.3. Выполнение определенных пользователем приведений 6.4.4. Определенные пользователем неявные приведения типов 6.4.5. Определенные пользователем явные приведения типов 6.5. Приведения анонимных функций 6.5.1. Выполнение приведений анонимных функций к типам делегатов 6.5.2. Выполнение приведений анонимных функций к деревьям выражений 6.5.3. Пример реализации 6.6. Приведения групп методов Глава 7. Выражения 7.1. Классификация выражений 7.1.1. Значение выражений 7.2. Статическое и динамическое связывание 7.2.1. Время связывания 7.2.2. Динамическое связывание 7.2.3. Типы составных частей выражений 7.3. Операции 7.3.1. Приоритет и ассоциативность операций 7.3.2. Перегрузка операций 7.3.3. Разрешение перегрузки унарных операций 7.3.4. Разрешение перегрузки бинарной операции 7.3.5. Набор определенных пользователем операций 7.3.6. Числовое расширение 7.3.6.1. Унарное числовое расширение 7.3.6.2. Бинарное числовое расширение 7.3.7. Расширенные операции 7.4. Поиск элемента 7.4.1. Базовые типы 7.5. Функциональные элементы 7.5.1. Списки аргументов 7.5.1.1. Соответствующие параметры 7.5.1.2. Вычисление списка аргументов во время выполнения программы 7.5.2. Выведение типов 7.5.2.1. Первая фаза 7.5.2.2. Вторая фаза 7.5.2.3. Входные типы 7.5.2.4. Выходные типы 7.5.2.5. Зависимость 7.5.2.6. Выведение выходного типа 7.5.2.7. Явное выведение типа параметра 7.5.2.8. Точное выведение 7.5.2.9. Выведение нижней границы 7.5.2.10. Выведение верхней границы 7.5.2.11. Фиксация 7.5.2.12. Выведенный тип возвращаемого значения 7.5.2.13. Выведение типа для преобразования группы методов 7.5.2.14. Нахождение наилучшего общего типа для набора выражений 7.5.3. Разрешение перегрузки 7.5.3.1. Подходящий функциональный элемент 7.5.3.2. Лучший функциональный элемент 7.5.3.3. Лучшее приведение из выражения 7.5.3.4. Лучшее приведение из типа 7.5.3.5. Лучший целевой объект приведения 7.5.3.6. Перегрузка в обобщенных классах 7.5.4. Проверка динамического разрешения перегрузки во время компиляции 7.5.5. Вызов функционального элемента 7.5.5.1. Вызовы для упакованных экземпляров 7.6. Первичные выражения 7.6.1. Литералы 7.6.2. Простые имена 7.6.2.1. Инвариантное значение в блоках 7.6.3. Выражения в скобках 7.6.4. Доступ к элементу 7.6.4.1. Идентичные простые имена и имена типов 7.6.4.2. Грамматическая неоднозначность 7.6.5. Выражения вызова 7.6.5.1. Вызов метода 7.6.5.2. Вызов метода расширения 7.6.5.3. Вызов делегата 7.6.6. Доступ к элементу массива 7.6.6.1. Доступ к массиву 7.6.6.2. Доступ к индексатору 7.6.7. this-доступ 7.6.8. Base-доступ 7.6.9. Постфиксные инкрементные и декрементные операции 7.6.10. Операция new 7.6.10.1. Выражения создания объекта 7.6.10.2. Инициализаторы объектов 7.6.10.3. Инициализаторы коллекций 7.6.10.4. Выражения создания массива 7.6.10.5. Выражения создания делегата 7.6.10.6. Выражение создания анонимного объекта 7.6.11. Операция typeof 7.6.12. Операции checked и unchecked 7.6.13. Выражения значений по умолчанию 7.6.14. Выражения анонимных методов 7.7. Унарные операции 7.7.1. Унарная операция плюс 7.7.2. Унарная операция минус 7.7.3. Логическая операция отрицания 7.7.4. Операция поразрядного дополнения 7.7.5. Префиксные инкрементные и декрементные операции 7.7.6. Выражения приведения 7.8. Арифметические операции 7.8.1. Операция умножения 7.8.2. Операция деления 7.8.3. Операция взятия остатка от деления 7.8.4. Операция сложения 7.8.5. Операция вычитания 7.9. Операции сдвига 7.10. Операции отношения и операции проверки типа 7.10.1. Операции сравнения для целочисленных типов 7.10.2. Операции сравнения для типов с плавающей точкой 7.10.3. Операции сравнения для десятичного типа 7.10.4. Операции равенства для булевского типа 7.10.5. Операции сравнения для перечислений 7.10.6. Операции равенства для ссылочных типов 7.10.7. Операции равенства для строкового типа 7.10.8. Операции равенства для типов делегатов 7.10.9. Операции равенства и константа null 7.10.10. Операция is 7.10.11. Операция as 7.11. Логические операции 7.11.1. Логические операции для целочисленных типов 7.11.2. Логические операции для перечислений 7.11.3. Булевские логические операции 7.11.4. Обнуляемые булевские логические операции 7.12. Условные логические операции 7.12.1. Булевские условные логические операции 7.12.2. Определенные пользователем условные логические операции 7.13. Операция объединения с нулем 7.14. Условная операция 7.15. Выражения анонимных функций 7.15.1. Сигнатуры анонимной функции 7.15.2. Тело анонимной функции 7.15.3. Разрешение перегрузки 7.15.4. Анонимные функции и динамическое связывание 7.15.5. Внешние переменные 7.15.5.1. Захваченные внешние переменные 7.15.5.2. Инстанцирование локальных переменных 7.15.6. Вычисление выражений анонимных функций 7.16. Выражения запроса 7.16.1. Неоднозначность в выражениях запроса 7.16.2. Преобразование выражений запроса 7.16.2.1. Конструкции select и GroupBy с продолжениями 7.16.2.2. Явно определенные типы переменных диапазона 7.16.2.3. Вырожденные выражения запросов 7.16.2.4. Конструкции from, let, where, join и orderby 7.16.2.5. Конструкции select 7.16.2.6. Конструкция GroupBy 7.16.2.7. Прозрачные идентификаторы 7.16.3. Паттерн выражения запроса 7.17. Операции присваивания 7.17.1. Простое присваивание 7.17.2. Сложное присваиваивание 7.17.3. Присваивание событий 7.18. Выражения 7.19. Константные выражения 7.20. Булевские выражения Глава 8. Операторы 8.1. Конечные точки и достижимость 8.2. Блоки 8.2.1. Списки операторов 8.3. Пустой оператор 8.4. Помеченные операторы 8.5. Операторы объявления 8.5.1. Объявление локальных переменных 8.5.2. Объявление локальных констант 8.6. Операторы-выражения 8.7. Операторы выбора 8.7.1. Оператор if 8.7.2. Оператор switch 8.8. Операторы цикла 8.8.1. Оператор while 8.8.2. Оператор do 8.8.3. Оператор for 8.8.4. Оператор foreach 8.9. Операторы перехода 8.9.1. Оператор break 8.9.2. Оператор continue 8.9.3. Оператор goto 8.9.4. Оператор return 8.9.5. Оператор throw 8.10. Оператор try 8.11. Операторы checked и unchecked 8.12. Оператор lock 8.13. Оператор using 8.14. Оператор yield Глава 9. Пространства имен 9.1. Единица компиляции 9.2. Объявления пространств имен 9.3. Внешние псевдонимы 9.4. Директивы using 9.4.1. Using-директива псевдонима 9.4.2. Using-директива пространства имен 9.5. Элементы пространства имен 9.6. Объявление типов 9.7. Спецификатор псевдонима пространства имен 9.7.1. Уникальность псевдонимов Глава 10. Классы 10.1. Объявления классов 10.1.1 Модификаторы класса 10.1.1.1. Абстрактные классы 10.1.1.2. Бесплодные классы 10.1.1.3. Статические классы 10.1.2. Модификатор partial 10.1.3. Параметры-типы 10.1.4. Спецификация базового класса 10.1.4.1. Базовые классы 10.1.4.2. Реализации интерфейсов 10.1.5. Ограничения на параметры-типы 10.1.6. Тело класса 10.2. Частичные типы 10.2.1. Атрибуты 10.2.2. Модификаторы 10.2.3. Параметры-типы и ограничения 10.2.4. Базовый класс 10.2.5. Базовые интерфейсы 10.2.6. Элементы 10.2.7. Частичные методы 10.2.8. Привязка имен 10.3. Элементы класса 10.3.1. Тип экземпляра 10.3.2. Элементы сконструированных типов 10.3.3. Наследование 10.3.4. Модификатор new 10.3.5. Модификаторы доступа 10.3.6. Составляющие типы 10.3.7. Статические элементы и элементы экземпляра 10.3.8. Вложенные типы 10.3.8.1. Полные имена 10.3.8.2. Объявления вида доступа 10.3.8.3. Скрытие 10.3.8.4. this-доступ 10.3.8.5. Доступ к закрытым и защищенным элементам охватывающего типа 10.3.8.6. Вложенные типы в обобщенных классах 10.3.9. Зарезервированные имена элементов 10.3.9.1. Имена элементов, зарезервированные для свойств 10.3.9.2. Имена элементов, зарезервированные для событий 10.3.9.3. Имена элементов, зарезервированные для индексаторов 10.3.9.4. Имена элементов, зарезервированные для деструкторов 10.4. Константы 10.5. Поля 10.5.1. Статические поля и поля экземпляра 10.5.2. Поля, доступные только для чтения 10.5.2.1. Использование статических полей, доступных только для чтения, вместо констант 10.5.2.2. Управление версиями констант и статических полей, доступных только для чтения 10.5.3. Асинхронно-изменяемые поля 10.5.4. Инициализация полей 10.5.5. Инициализаторы переменных 10.5.5.1. Инициализация статических полей 10.5.5.2. Инициализация полей экземпляра 10.6. Методы 10.6.1. Параметры метода 10.6.1.1. Параметры-значения 10.6.1.2. Параметры-ссылки 10.6.1.3. Выходные параметры 10.6.1.4. Параметры-массивы 10.6.2. Статические методы и методы экземпляра 10.6.3. Виртуальные методы 10.6.4. Переопределенные методы 10.6.5. Бесплодные методы 10.6.6. Абстрактные методы 10.6.7. Внешние методы 10.6.8. Частичные методы 10.6.9. Методы расширения 10.6.10. Тело метода 10.6.11. Перегрузка методов 10.7. Свойства 10.7.1. Статические свойства и свойства экземпляра 10.7.2. Коды доступа 10.7.3. Автоматически реализуемые свойства 10.7.4. Доступность 10.7.5. Виртуальные, бесплодные, переопределенные и абстрактные коды доступа 10.8. События 10.8.1. События, подобные полям 10.8.2. Коды доступа событий 10.8.3. Статические события и события экземпляра 10.8.4. Виртуальные, бесплодные, переопределенные и абстрактные коды доступа 10.9. Индексаторы 10.9.1. Перегрузка индексаторов 10.10. Операции 10.10.1. Унарные операции 10.10.2. Бинарные операции 10.10.3. Операции преобразования 10.11. Конструкторы экземпляра 10.11.1. Инициализаторы конструктора 10.11.2. Инициализаторы переменных экземпляра 10.11.3. Выполнение конструктора 10.11.4. Конструкторы по умолчанию 10.11.5. Закрытые конструкторы 10.11.6. Необязательные параметры конструкторов экземпляра 10.12. Статические конструкторы 10.13. Деструкторы 10.14. Итераторы 10.14.1. Интерфейсы-перечислители 10.14.2. Перечислимые интерфейсы 10.14.3. Результирующий тип 10.14.4. Объекты-перечислители 10.14.4.1. Метод MoveNext 10.14.4.2. Свойство Current 10.14.4.3. Метод Dispose 10.14.5. Перечислимые объекты 10.14.5.1. Метод GetEnumerator 10.14.6. Пример реализации Глава 11. Структуры 11.1. Объявления структур 11.1.1. Модификаторы структур 11.1.2. Модификатор partial 11.1.3. Интерфейсы структуры 11.1.4. Тело структуры 11.2. Элементы структуры 11.3. Различия между классами и структурами 11.3.1. Значимая семантика 11.3.2. Наследование 11.3.3. Присваивание 11.3.4. Значения по умолчанию 11.3.5. Упаковка и распаковка 11.3.6. Значение this 11.3.7. Инициализаторы полей 11.3.8. Конструкторы 11.3.9. Деструкторы 11.3.10. Статические конструкторы 11.4. Примеры структур 11.4.1. Целочисленный тип для базы данных 11.4.2. Тип boolean для базы данных Глава 12. Массивы 12.1. Типы массивов 12.1.1. Тип System. Array 12.1.2. Массивы и обобщенный интерфейс IList 12.2. Создание массива 12.3. Доступ к элементам массива 12.4. Элементы типа массива 12.5. Ковариантность массивов 12.6. Инициализаторы массива Глава 13. Интерфейсы 13.1. Объявления интерфейсов 13.1.1. Модификаторы интерфейса 13.1.2. Модификатор partial 13.1.3. Списки параметров вариантного типа 13.1.3.1. Безопасность вариантности 13.1.3.2. Преобразование вариантности 13.1.4. Базовые интерфейсы 13.1.5. Тело интерфейса 13.2. Элементы интерфейса 13.2.1. Методы интерфейса 13.2.2. Свойства интерфейса 13.2.3. События интерфейса 13.2.4. Индексаторы интерфейса 13.2.5. Доступ к элементам интерфейса 13.3. Полные имена элементов интерфейса 13.4. Реализации интерфейсов 13.4.1. Явные реализации элементов интерфейса 13.4.2. Уникальность реализованных интерфейсов 13.4.3. Реализация обобщенных методов 13.4.4. Сопоставление интерфейсов 13.4.5. Наследование реализаций интерфейсов 13.4.6. Повторная реализация интерфейса 13.4.7. Абстрактные классы и интерфейсы Глава 14. Перечисления 14.1. Объявление перечисления 14.2. Модификаторы перечисления 14.3. Элементы перечисления 14.4. Тип System.Enum 14.5. Значения перечислений и операции Глава 15. Делегаты 15.1. Объявления делегатов 15.2. Совместимость делегатов 15.3. Создание экземпляра делегата 15.4. Вызов делегата Глава 16. Исключения 16.1. Причины исключений 16.2. Класс System. Exception 16.3. Как обрабатываются исключения 16.4. Распространенные классы исключений Глава 17. Атрибуты 17.1. Классы атрибутов 17.1.1. Использование атрибутов 17.1.2. Позиционные и именованные параметры 17.1.3. Типы параметров атрибута 17.2. Спецификация атрибута 17.3. Экземпляры атрибутов 17.3.1. Компиляция атрибута 17.3.2. Получение экземпляра атрибута во время выполнения 17.4. Зарезервированные атрибуты 17.4.1. Атрибут AttributeUsage 17.4.2. Атрибут Conditional 17.4.2.1. Условные методы 17.4.2.2. Классы условных атрибутов 17.4.3. Атрибут Obsolete 17.5. Атрибуты для взаимодействия 17.5.1. Взаимодействие с компонентами COM и Win 17.5.2. Взаимодействие с другими языками .NET 17.5.2.1. Атрибут IndexerName Глава 18. Небезопасный код 18.1. Небезопасные контексты 18.2. Типы указателей 18.3. Фиксированные и перемещаемые переменные 18.4. Преобразования указателей 18.4.1. Массивы указателей 18.5. Использование указателей в выражениях 18.5.1. Разыменование указателей 18.5.2. Доступ к элементу объекта через указатель 18.5.3. Доступ к элементу через указатель 18.5.4. Операция получения адреса 18.5.5. Инкремент и декремент указателей 18.5.6. Арифметика указателей 18.5.7. Сравнение указателей 18.5.8. Операция sizeof 18.6. Оператор fixed 18.7. Буферы фиксированного размера 18.7.1. Объявления буферов фиксированного размера 18.7.2. Использование буферов фиксированного размера в выражениях 18.7.3. Проверка явного присваивания 18.8. Выделение памяти в стеке 18.9. Динамическое выделение памяти Приложение А. Документирующие комментарии А.1. Введение А.2. Рекомендуемые теги А.2.1. <c> A.2.2. <code> A.2.3. <example> A.2.4. <exception> A.2.5. <include> A.2.6. <list> A.2.7. <para> A.2.8. <param> A.2.9. <paramref> A.2.10. <permission> A.2.11. <remark> A.2.12. <returns> A.2.13. <see> A.2.14. <seealso> A.2.15. <summary> A.2.16. <value> A.2.17. <typeparam> A.2.18. <typeparamref> A.3. Обработка файла документации A.3.1. Формат ID-строки A.3.2. Примеры ID-строк A.4. Пример A.4.1. Исходный код на C# A.4.2. Результирующий XML Приложение Б. Грамматика Б.1. Лексическая грамматика Б.1.1. Символы конца строки Б.1.2. Комментарии Б.1.3. Пробельные символы Б.1.4. Лексемы Б.1.5. Управляющие последовательности Unicode Б.1.6. Идентификаторы Б.1.7. Ключевые слова Б.1.8. Литералы Б.1.9. Знаки операций и пунктуации Б.1.10. Директивы препроцессора Б.2. Синтаксическая грамматика Б.2.1. Основные понятия Б.2.2. Типы Б.2.3. Переменные Б.2.4. Выражения Б.2.5. Операторы Б.2.6. Пространства имен Б.2.7. Классы Б.2.8. Структуры Б.2.9. Массивы Б.2.10. Интерфейсы Б.2.11. Перечисления Б.2.12. Делегаты Б.2.13. Атрибуты Б.3. Расширения грамматики для небезопасного кода Приложение В. Ссылки