Читать онлайн «С# 5.0. Карманный справочник»

Автор Албахари Д., Албахари Б.

О 5. 0 Карманный справочник О 5. 0 Pocket Reference Joseph Albahari and BenAlbahari O’REILLY* Beijing • Cambridge • Farnham - Koln • Sebastopol - Tokyo С# 5. 0 Карманный справочник Джозеф Албахари БенАлбахари Москва • Санкт-Петербург • Киев 2013 ББК 32. 973. 26-018. 2. 75 А45 УДК 681. 3. 07 Издательский дом “Вильямс” Зав. редакцией С. Н. Тригуб Перевод с английского и редакция докг. физ. -мат. А45 С# 5. 0. Карманный справочник. : Пер. с англ. — М. : ООО “ИД Вильямс”, 2013. — 288 с. : ил. — Парал. тит. англ. ISBN 978-5-8459-1820-8 (рус. ) ББК 32. 973. 26-018. 2. 75 Все названия программных продуктов являются зарегистрирован¬ ными торговыми марками соответствующих фирм. Никакая часть настоящего издания ни в каких целях не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было электронные или механические, включая фотоко- т/ровзние и запись на магнитный носитель, если на это нет письмен¬ ного разрешения издательства O’Reilly Media, Inc. Authorized Russian translation of the English edition of C* 5. 0 Pocket Reference: Instant Help for C# 50 Programmers © 2012 Joseph Albahari and Ben Albahari (ISBN 9781449320171). This translation is published and sold by permission of O’Reilly Media, Inc. , which owns or controls all rights to publish and sell the same.
All rights reserved. No part of this work may be reproduced or transmit¬ ted in any form or by any means, electronic or mechanical, including photo¬ copying, recording, or by any information storage or retrieval system, with¬ out the prior written permission of the copyright owner and the Publisher. Научно-популярное издание Джозеф Албахари, Бен Албахари С# 5. 0. Карманный справочник Литературный редактор И. А Попова Верстка АН. Полинчик Художественный редактор В. Г. Павлюшин Корректор Л. АГордиенко Подписано в печать 13. 11. 2012. Формат 70х 100/32 Гарнитура Times. Печать офсетная Уел. печ. л. 11,61. Уч. -изд. л. 7,4 Тираж 2000 экз. Заказ № 591 Первая Академическая типография “Наука” 199034, Санкт-Петербург, 9-я линия, 12/28 ООО “И. Д. Вильямс”, 127055, г. Москва, ул. Лесная, д. 43, стр. 1 ISBN 978-5-8459-1820-8 (рус. ) © 2013 Издательский дом “Вильямс” ISBN 978-1-4493-2017-1 (англ. ) © 2012 Joseph Albahari and Ben Albahari Содержание КАРМАННЫЙ СПРАВОЧНИК ПО C# 5. 0 13 Обозначения, принятые в книге 14 Использование примеров кода 15 Библиотека Safari® Books Online 16 Ждем ваших отзывов! 17 Первая программа на языке C# 18 Компиляция 21 Синтаксис 22 Идентификаторы и ключевые слова 23 Предотвращение конфликтов 24 Контекстные ключевые слова 25 Литералы, знаки пунктуации и операции 25 Комментарии 26 Основы типов 27 Примеры предопределенных типов 27 Примеры пользовательских типов 29 Преобразования 32 Типы значений и ссылочные типы 33 Классификация предопределенных типов 37 Числовые типы 38 Числовые литералы 39 Числовые преобразования 41 Арифметические операции 42 Специализированные целочисленные операции 8- и 16-битовые целочисленные типы Специальные значения типов float и double Ошибки округления действительных чисел Булев тип и операции Операция проверки равенства и сравнения Условные операции Строки и символы Тип string Массивы Инициализация элемента по умолчанию Многомерные массивы Переменные и параметры Стек и куча Определенное присваивание Значения по умолчанию Выражения и операции Выражения присваивания Приоритет и ассоциативность операций Операторы Оператор объявления Операторы-выражения Оператор выбора Итерационные операторы Операторы перехода 42 44 45 47 47 48 48 50 51 54 56 57 59 59 61 62 70 71 72 76 76 77 77 81 84 6 | Содержание Пространства имен 85 Правила в пространстве имен 88 Классы 90 Статические классы 102 Финализаторы 102 Частичные типы и методы 103 Наследование 105 Виртуальные функции-члены 109 Конструкторы и наследование 113 Перегрузка и разрешение 115 Тип object 116 Упаковка и распаковка 117 Статическая и динамическая проверка 118 Метод GetType и операция typeof 119 Структуры 122 Семантика создания структуры 123 Модификаторы доступа 123 Интерфейсы 125 Расширение интерфейса 127 Явная реализация интерфейса 127 Виртуальная реализация членов интерфейса Повторная реализация интерфейса в 128 подклассе 129 Перечисления 130 Преобразования перечислений 131 Перечисление флагов перечислений 132 Операции над перечислениями 133 Содержание | 7 Вложенные типы 133 Обобщения 134 Обобщенные типы 135 Обобщенные методы 137 Объявление параметров типа 138 Операция typeof и несвязанные обобщенные типы 139 Ограничения обобщений 140 Вывод подклассов обобщенных типов 142 Самоссылающиеся обобщенные объявления 142 Статические данные 143 Ковариантность 143 Контравариантность 146 Делегаты 147 Создание подключаемых методов с помощью делегатов 148 Г рупповые делегаты 149 Целевые методы экземпляра и целевые статические методы 151 Обобщенные типы делегатов 151 Делегаты Func и Action 151 Совместимость делегатов 152 События 155 Стандартная модель событий 158 Методы доступа в событиях 161 Лямбда-выражения 163 Захват внешних переменных 165 8 | Содержание Анонимные методы 168 Оператор try и исключения 169 Раздел catch 172 Блок finally 174 Генерирование исключений 176 Основные свойства класса System. Exception 177 Общие типы исключений 178 Перечисления и итераторы 180 Перечисление 180 Инициализаторы коллекции 181 Итераторы 182 Семантика итераторов 183 Композиции последовательностей 185 Типы, допускающие значение NULL 187 Структура Nullable 187 Преобразования, допускающие значение NULL 188 Упаковка/распаковка значений, допускающих NULL 189 Заимствование операций 189 Применение операций & и | к операндам типа bool? 192 Операция?? 192 Перегрузка операций 193 Операторные функции 194 Перегрузка операций проверки равенства и сравнения 195 Содержание | 9 Ячные и неявные пользовательские преобразования 196 Расширяющие методы 197 Создание цепочек методов расширения 198 Неоднозначность и разрешение 199 Анонимные типы 199 Язык запросов LINQ 201 Основы языка LINQ 201 Отложенное выполнение 207 Стандартные операции запроса 210 Создание цепочек операций запроса 214 Выражения запросов 215 Ключевое слово let 220 Продолжения запросов 221 Множественные генераторы 222 Соединение 224 Упорядочение 229 Г руппирование 230 Методы OfType и Cast 232 Динамическое связывание 233 Статическое и динамическое связывание 234 Специальное связывание 236 Языковое связывание 237 Исключение RuntimeBinderException 239 Представление динамического типа на этапе выполнения программы 240 Динамические преобразования 241 10 | Содержание Типы var и dynamic 241 Динамические выражения 242 Разрешение перегрузки динамического члена 243 Невызываемые функции 245 Атрибуты 246 Классы атрибутов 247 Именованные и позиционные параметры атрибутов 248 Цели атрибутов 249 Задание нескольких атрибутов 249 Создание собственных атрибутов 249 Получение атрибутов на этапе выполнения программы 251 Атрибуты сведений о вызывающей стороне (C# 5. 0) 252 Асинхронные функции (C# 5. 0) 254 Ключевые слова await и async 256 Перехват локального состояния 260 Создание асинхронных функций 261 Параллелизм 264 Асинхронные лямбда-выражения 265 Небезопасный код и указатели 266 Основы указателей 267 Небезопасный код 267 Оператор fixed 268 Указатель на член класса 269 Массивы 270 Содержание | 11 Указатель void* 271 Директивы препроцессора 272 Директива pragma warning 274 Документация XML 275 Стандартные дескрипторы документации XML 276 Об авторах 280 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 281 12 | Содержание Карманный справочник по C# 5. 0 С#— универсальный, типизированный, объектно- ориентированный язык программирования.