Главная| Трекер ▼| Поиск| Правила| FAQ| |
Автор | Сообщение |
---|---|
admin
Администратор ![]() Сообщения: 9175 Откуда: Новгород ![]() |
Герберт Шилдт | C# 4.0. Полное руководство (2011) [PDF] ![]() Название: C# 4.0. Полное руководство Издательство: "Вильямс" ISBN: 978-5-8459-1684-6 Отрасль (жанр): Программирование Формат: PDF Качество: E-book Иллюстрации: Цветные и черно-белые Страниц: 1056 Описание: В этом полном руководстве по C# 4.0 — языку программирования, разработанному специально для среды .NET, — детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#. - Полное описание средств языка C# - Подробное рассмотрение новых средств в версии C# 4.0, в том числе PLINQ, библиотеку TPL, именованные и необязательные аргументы, динамический тип данных и многое другое - Сотни простых и понятных примеров программ с комментариями. Самый полный источник информации по C# Благодаря поддержке параллельного языка интегрированных запросов (PLINQ) и библиотеки распараллеливания задач (TPL) версия 4.0 стала новой вехой в программировании на C#, и поэтому Герберт Шилдт, автор лучших книг по программированию, обновил и расширил свое классическое руководство, чтобы охватить в нем эти и другие нововведения. В книге подробно описываются языковые средства C#, даются профессиональные рекомендации и приводятся сотни примеров программ, охватывающих все аспекты программирования на C#, включая синтаксис, ключевые слова и основные библиотеки, не говоря уже о таких новшествах, как PLINQ, TPL, динамический тип данных, а также именованные и необязательные аргументы. Это необходимое каждому программирующему на C# справочное руководство написано простым и доступным языком, благодаря которому Герберт Шилдт стал таким популярным. В книге найдут ответы на насущные вопросы по C# как начинающие, так и опытные программисты. Об авторе О научном редакторе Благодарности Предисловие Структура книги Книга для всех программирующих Необходимое программное обеспечение Код, доступный в Интернете Что еще почитать От издательства ЧАСТЬ I. ЯЗЫК C# Глава 1. Создание C# Генеалогическое дерево C# Язык С — начало современной эпохи программирования Появление ООП и C++ Появление Интернета и Java Создание C# Развитие C# Связь С# со средой .NET Framework О среде NET Framework 37 Принцип действия CLR Управляемый и неуправляемый код Общеязыковая спецификация Глава 2. Краткий обзор элементов C# Объектно-ориентированное программирование Инкапсуляция Полиморфизм Наследование Первая простая программа Применение компилятора командной строки csc.exe Применение интегрированной среды разработки Visual Studio Построчный анализ первого примера программы Обработка синтаксических ошибок Незначительное изменение программы Вторая простая программа Другие типы данных Два управляющих оператора Условный оператор Оператор цикла Использование кодовых блоков Точка с запятой и оформление исходного текста программы Ключевые слова C# Идентификаторы Библиотека классов среды .NET Framework Глава 3. Типы данных, литералы и переменные О значении типов данных Типы значений в C# Целочисленные типы Типы для представления чисел с плавающей точкой Десятичный тип данных Символы Логический тип данных Некоторые возможности вывода Литералы Шестнадцатеричные литералы Управляющие последовательности символов Строковые литералы Более подробное рассмотрение переменных Инициализация переменной Динамическая инициализация Неявно типизированные переменные Область действия и время существования переменных Преобразование и приведение типов Автоматическое преобразование типов Приведение несовместимых типов Преобразование типов в выражениях Приведение типов в выражениях Глава 4. Операторы Арифметические операторы Операторы инкремента и декремента Операторы отношения и логические операторы Укороченные логические операторы Оператор присваивания Составные операторы присваивания Поразрядные операторы Поразрядные операторы И, ИЛИ, исключающее ИЛИ и НЕ Операторы сдвига Поразрядные составные операторы присваивания Оператор ? Использование пробелов и круглых скобок Предшествование операторов Глава 5. Управляющие операторы Оператор if Вложенные операторы if Конструкция if-else-if - Оператор switch Вложенные операторы switch Оператор цикла for Некоторые разновидности оператора цикла for Оператор цикла while Оператор цикла do-while Оператор цикла foreach Применение оператора break для выхода из цикла Применение оператора continue Оператор return Оператор goto Глава 6. Введение в классы, объекты и методы Основные положения о классах Общая форма определения класса Определение класса Создание объектов Переменные ссылочного типа и присваивание Методы Добавление метода в класс Building Возврат из метода Возврат значения Использование параметров Добавление параметризированного метода в класс Building Исключение недоступного кода Конструкторы Параметризированные конструкторы Добавление конструктора в класс Building Еще раз об операторе new Применение оператора new вместе с типами значений "Сборка мусора" и применение деструкторов Деструкторы Ключевое слово this Глава 7. Массивы и строки Массивы Одномерные массивы Многомерные массивы Двумерные массивы Массивы трех и более измерений Инициализация многомерных массивов Ступенчатые массивы Присваивание ссылок на массивы Применение свойства Length Применение свойства Length при обращении со ступенчатыми массивами Неявно типизированные массивы Оператор цикла foreach Строки Построение строк Обращение со строками Массивы строк Постоянство строк Применение строк в операторах switch Глава 8. Подробнее о методах и классах Управление доступом к членам класса Модификаторы доступа Организация закрытого и открытого доступа Практический пример организации управления доступом Передача объектов методам по ссылке Способы передачи аргументов методу Использование модификаторов параметров ref и out Использование модификатора параметра ref Использование модификатора параметра out Использование модификаторов ref и out для ссылок на объекты Использование переменного числа аргументов Возврат объектов из методов Возврат массива из метода Перегрузка методов Перегрузка конструкторов Вызов перегружаемого конструктора с помощью ключевого слова this Инициализаторы объектов Необязательные аргументы Необязательные аргументы и перегрузка методов Необязательные аргументы и неоднозначность Практический пример использования необязательных аргументов Именованные аргументы Метод Main() Возврат значений из метода Main() Передача аргументов методу Main() Рекурсия Применение ключевого слова static Статические конструкторы Статические классы Глава 9. Перегрузка операторов Основы перегрузки операторов Перегрузка бинарных операторов Перегрузка унарных операторов Выполнение операций со встроенными в C# типами данных Перегрузка операторов отношения Перегрузка операторов true и false Перегрузка логических операторов Простой способ перегрузки логических операторов Как сделать укороченные логические операторы доступными для применения Операторы преобразования Рекомендации и ограничения по перегрузке операторов Еще один пример перегрузки операторов Глава 10. Индексаторы и свойства Индексаторы Создание одномерных индексаторов Перегрузка индексаторов Индексаторы без базового массива Многомерные индексаторы Свойства Автоматически реализуемые свойства Применение инициализаторов объектов в свойствах Ограничения, присущие свойствам Применение модификаторов доступа в аксессорах Применение индексаторов и свойств Глава 11. Наследование Основы наследования Доступ к членам класса и наследование Организация защищенного доступа Конструкторы и наследование Вызов конструкторов базового класса Наследование и сокрытие имен Применение ключевого слова base для доступа к скрытому имени Создание многоуровневой иерархии классов Порядок вызова конструкторов Ссылки на базовый класс и объекты производных классов Виртуальные методы и их переопределение Что дает переопределение методов Применение виртуальных методов Применение абстрактных классов Предотвращение наследования с помощью ключевого слова sealed Класс object Упаковка и распаковка Класс object как универсальный тип данных Глава 12. Интерфейсы, структуры и перечисления Интерфейсы Реализация интерфейсов Применение интерфейсных ссылок Интерфейсные свойства Интерфейсные индексаторы Наследование интерфейсов Сокрытие имен при наследовании интерфейсов Явные реализации Выбор между интерфейсом и абстрактным классом Стандартные интерфейсы для среды .NET Framework Структуры О назначении структур Перечисления Инициализация перечисления Указание базового типа перечисления Применение перечислений Глава 13. Обработка исключительных ситуаций Класс System.Exception Основы обработки исключительных ситуаций Применение пары ключевых слов try и catch Простой пример обработки исключительной ситуации Второй пример обработки исключительной ситуации Последствия неперехвата исключений Обработка исключительных ситуаций — "изящный" способ устранения программных ошибок Применение нескольких операторов catch Перехват всех исключений Вложение блоков try Генерирование исключений вручную Повторное генерирование исключений Использование блока finally Подробное рассмотрение класса Exception Наиболее часто используемые исключения Получение производных классов исключений Перехват исключений производных классов Применение ключевых слов checked и unchecked Глава 14. Применение средств ввода-вывода Организация системы ввода-вывода в C# на потоках Байтовые и символьные потоки Встроенные потоки Классы потоков Класс Stream Классы байтовых потоков Классы-оболочки символьных потоков Двоичные потоки Консольный ввод-вывод Чтение данных из потока ввода с консоли Применение метода ReadKey() Запись данных в поток вывода на консоль Класс FileStream и байтовый ввод-вывод в файл Открытие и закрытие файла Чтение байтов из потока файлового ввода-вывода Запись в файл Использование класса FileStream для копирования файла Символьный ввод-вывод в файл Применение класса StreamWriter Применение класса StreamReader Переадресация стандартных потоков Чтение и запись двоичных данных Класс BinaryWriter Класс BinaryReader Демонстрирование двоичного ввода-вывода Файлы с произвольным доступом Применение класса MemoryStream Применение классов StringReader и StringWriter Класс File Копирование файлов с помощью метода Сору() Применение методов Exists() и GetLastAccessTime() Преобразование числовых строк в их внутреннее представление Глава 15. Делегаты, события и лямбда-выражения Делегаты Групповое преобразование делегируемых методов Применение методов экземпляра в качестве делегатов Групповая адресация Ковариантность и контравариантность Класс System.Delegate Назначение делегатов Анонимные функции Анонимные методы Передача аргументов анонимному методу Возврат значения из анонимного метода Применение внешних переменных в анонимных методах Лямбда-выражения Лямбда-оператор Одиночные лямбда-выражения Блочные лямбда-выражения События Пример групповой адресации события Методы экземпляра в сравнении со статическими методами в качестве обработчиков событий Применение аксессоров событий Разнообразные возможности событий Применение анонимных методов и лямбда-выражений вместе с событиями Рекомендации по обработке событий в среде .NET Framework Применение делегатов EventHandler<TEventArgs> и EventHandler Практический пример обработки событий Глава 16. Пространства имен, препроцессор и сборки Пространства имен Объявление пространства имен Предотвращение конфликтов имен с помощью пространств имен Директива using Вторая форма директивы using Аддитивный характер пространств имен Вложенные пространства имен Глобальное пространство имен Применение описателя псевдонима пространства имен :: Препроцессор Директива #define Директивы #if и #endif Директивы #else и #elif Директива #undef Директива #error Директива #warning Директива #line Директивы #region и #endregion Директива #pragma Сборки и модификатор доступа internal Модификатор доступа internal Глава 17. Динамическая идентификация типов, рефлексия и атрибуты Динамическая идентификация типов Проверка типа с помощью оператора is Применение оператора as Применение оператора typeof Рефлексия Класс System.Type — ядро подсистемы рефлексии Применение рефлексии Получение сведений о методах Вызов методов с помощью рефлексии Получение конструкторов конкретного типа Получение типов данных из сборок Полностью автоматизированное обнаружение типов Атрибуты Основы применения атрибутов Сравнение позиционных и именованных параметров Встроенные атрибуты Атрибут AttributeUsage Атрибут Conditional Атрибут Obsolete Глава 18. Обобщения Что такое обобщения Простой пример обобщений Различение обобщенных типов по аргументам типа Повышение типовой безопасности с помощью обобщений Обобщенный класс с двумя параметрами типа Общая форма обобщенного класса Ограниченные типы Применение ограничения на базовый класс Применение ограничения на интерфейс Применение ограничения new() на конструктор Ограничения ссылочного типа и типа значения Установление связи между двумя параметрами типа с помощью ограничения Применение нескольких ограничений Получение значения, присваиваемого параметру типа по умолчанию Обобщенные структуры Создание обобщенного метода Вызов обобщенного метода с явно указанными аргументами типа Применение ограничений в обобщенных методах Обобщенные делегаты Обобщенные интерфейсы Сравнение экземпляров параметра типа Иерархии обобщенных классов Применение обобщенного базового класса Обобщенный производный класс Переопределение виртуальных методов в обобщенном классе Перегрузка методов с несколькими параметрами типа Ковариантность и контравариантность в параметрах обобщенного типа Применение ковариантности в обобщенном интерфейсе Применение контравариантности в обобщенном интерфейсе Вариантные делегаты Создание экземпляров объектов обобщенных типов Некоторые ограничения, присущие обобщениям Заключительные соображения относительно обобщений Глава 19. LINQ Основы LINQ Простой запрос Неоднократное выполнение запросов Связь между типами данных в запросе Общая форма запроса Отбор запрашиваемых значений с помощью оператора where Сортировка результатов запроса с помощью оператора orderby Подробное рассмотрение оператора select Применение вложенных операторов from Группирование результатов с помощью оператора group Продолжение запроса с помощью оператора into Применение оператора let для создания временной переменной в запросе Объединение двух последовательностей с помощью оператора join Анонимные типы Создание группового объединения Методы запроса Основные методы запроса Формирование запросов с помощью методов запроса Синтаксис запросов и методы запроса Дополнительные методы расширения, связанные с запросами Режимы выполнения запросов: отложенный и немедленный Деревья выражений Методы расширения PLINQ Глава 20. Небезопасный код, указатели, обнуляемые типы и разные ключевые слова Небезопасный код Основы применения указателей Применение ключевого слова unsafe Применение модификатора fixed Доступ к членам структуры с помощью указателя Арифметические операции над указателями Сравнение указателей Указатели и массивы Указатели и строки Многоуровневая непрямая адресация Массивы указателей Создание буферов фиксированного размера Обнуляемые типы Основы применения обнуляемых типов Применение обнуляемых объектов в выражениях Оператор ?? Обнуляемые объекты, операторы отношения и логические операторы Частичные типы Частичные методы Создание объектов динамического типа Возможность взаимодействия с моделью СОМ Дружественные сборки Разные ключевые слова Ключевое слов lock Ключевое слово readonly Ключевые слова const и volatile Оператор using Ключевое слово extern ЧАСТЬ II. БИБЛИОТЕКА C# Глава 21. Пространство имен System Члены пространства имен System Класс Math Структуры .NET, соответствующие встроенным типам значений Структуры целочисленных типов данных Структуры типов данных с плавающей точкой Структура Decimal Структура Char Структура Boolean Класс Array Сортировка и поиск в массивах Обращение содержимого массива Копирование массива Применение предиката Применение делегата Action Класс BitConverter Генерирование случайных чисел средствами класса Random Управление памятью и класс GC Класс object Класс Tuple Интерфейсы IComparable и IComparable<T> Интерфейс IEquatable<T> Интерфейс IConvertible Интерфейс ICloneable Интерфейсы IFormatProvider и IFormattable Интерфейсы IObservable<T> и IObserver<T> Глава 22. Строки и форматирование Строки в C# Класс String Конструкторы класса String Поле, индексатор и свойство класса String Операторы класса String Заполнение и обрезка строк Вставка, удаление и замена строк Смена регистра Применение метода Substring() Методы расширения класса String Форматирование Общее представление о форматировании Спецификаторы формата числовых данных Представление о номерах аргументов Применение методов String.Format() и ToString() для форматирования данных Применение метода String.Format() для форматирования значений Применение метода ToString() для форматирования данных Определение пользовательского формата числовых данных Символы-заполнители специального формата числовых данных Форматирование даты и времени Определение пользовательского формата даты и времени Форматирование промежутков времени Форматирование перечислений Глава 23. Многопоточное программирование. Часть первая: основы Основы многопоточной обработки Класс Thread Создание и запуск потока Простые способы усовершенствования многопоточной программы Создание нескольких потоков Определение момента окончания потока Передача аргумента потоку Свойство IsBackground Приоритеты потоков Синхронизация Другой подход к синхронизации потоков Класс Monitor и блокировка Сообщение между потоками с помощью методов Wait(), Pulse() и PulseAll() Пример использования методов Wait() и Pulse() Взаимоблокировка и состояние гонки Применение атрибута MethodImplAttribute Применение мьютекса и семафора Мьютекс Семафор Применение событий Класс Interlocked Классы синхронизации, внедренные в версии .NET Framework 4.0 Прерывание потока Другая форма метода Abort() Отмена действия метода Abort() Приостановка и возобновление потока Определение состояния потока Применение основного потока Дополнительные средства многопоточной обработки, внедренные в версии .NET Framework 4.0 Рекомендации по многопоточному программированию Запуск отдельной задачи Глава 24. Многопоточное программирование. Часть вторая: библиотека TPL Два подхода к параллельному программированию Класс Task Создание задачи Применение идентификатора задачи Применение методов ожидания Вызов метода Dispose() Применение класса TaskFactory для запуска задачи Применение лямбда-выражения в качестве задачи Создание продолжения задачи Возврат значения из задачи Отмена задачи и обработка исключения AggregateException Другие средства организации задач Класс Parallel Распараллеливание задач методом Invoke() Применение метода For() Применение метода ForEach() Исследование возможностей PLINQ Класс ParallelEnumerable Распараллеливание запроса методом AsParallel() Применение метода AsOrdered() Отмена параллельного запроса Другие средства PLINQ Вопросы эффективности PLINQ Глава 25. Коллекции, перечислители и итераторы Краткий обзор коллекций Необобщенные коллекции Интерфейсы необобщенных коллекций Структура DictionaryEntry Классы необобщенных коллекций Хранение отдельных битов в классе коллекции BitArray Специальные коллекции Обобщенные коллекции Интерфейсы обобщенных коллекций Структура KeyValuePair<TKey, TValue> Классы обобщенных коллекций Параллельные коллекции Сохранение объектов, определяемых пользователем классов, в коллекции Реализация интерфейса IComparable Реализация интерфейса IComparable для необобщенных коллекций Реализация интерфейса IComparable для обобщенных коллекций Применение интерфейса IComparer Применение необобщенного интерфейса IComparer Применение обобщенного интерфейса IComparer<T> Применение класса StringComparer Доступ к коллекции с помощью перечислителя Применение обычного перечислителя Применение перечислителя типа IDictionaryEnumerator Реализация интерфейсов IEnumerable и IEnumerator Применение итераторов Прерывание итератора Применение нескольких операторов yield Создание именованного итератора Создание обобщенного итератора Инициализаторы коллекций Глава 26. Сетевые средства подключения к Интернету Члены пространства имен System.Net Универсальные идентификаторы ресурсов Основы организации доступа к Интернету Класс WebRequest Класс WebResponse Классы HttpWebRequest и HttpWebResponse Первый простой пример Обработка сетевых ошибок Исключения, генерируемые методом Create() Исключения, генерируемые методом GetResponse() Исключения, генерируемые методом GetResponseStream() Обработка исключений Класс Uri Доступ к дополнительной информации, получаемой в ответ по протоколу HTTP Доступ к заголовку Доступ к cookie-наборам Применение свойства LastModified Практический пример создания программы MiniCrawler Применение класса WebClient Приложение. Краткий справочник по составлению документирующих комментариев Дескрипторы XML-комментариев Компилирование документирующих комментариев Пример составления документации в формате XML Предметный указатель 1. Хорошее издание, с закладочной навигацией в боковой панели; 2. Книга переработана в электронную, исходный размер DjVu - 7,66 МБ, реставрация обложек, выравнивание размеров страниц; 3. Текст хорошо распознан, возможно копирование в буфер (см.скрин2) и поиск по всему тексту (скрин3); 4. Максимальное увеличение страницы, сохраняет чистоту текста, ровность букв. * возврат через закладку - Содержание; * Скриншоты сняты с разрешением - 94,9%; Скриншоты: Время раздачи: по возможности Помоги нашему сайту на расходы за сервер и качай торренты НЕОГРАНИЧЕННО!Пожертвовать 100 ₽ ![]() Или 2204 1201 2214 8816, с комментарием "Помощь трекеру" Связь с администрацией |
Страница 1 из 1 |
![]() |
|