Table of Contents
Introduction
Создание C#
Краткий обзор элементов C#
Типы данных, литералы и переменные
Операторы
Управляющие операторы
Введение в классы, объекты и методы
Массивы и строки
Подробнее о методах и классах
Перегрузка операторов
Индексаторы и свойства
Наследование
Интерфейсы, структуры и перечисления
Обработка исключительных ситуаций
Применение средств ввода-вывода
Делегаты, события и лямбда-выражения
Пространства имен, препроцессор и сборки
Динамическая идентификация типов, рефлексия и атрибуты
Обобщения
LINQ
Небезопасный код, указатели, обнуляемые типы и разные ключевые слова
Пространство имен System
Строки и форматирование
Многопоточное программирование. Часть первая: основы
Многопоточное программирование. Часть вторая: библиотека TPL
Коллекции, перечислители и итераторы
Сетевые средства подключения к Интернету
Приложение. Краткий справочник по составлению документирующих комментариев
ПОЛНОЕ РУКОВОДСТВО. С# 4.0
Герберт Шилдт
Глава 1. Создание C#
Глава 2. Краткий обзор элементов C#
Глава 3. Типы данных, литералы и переменные
Глава 4. Операторы
Глава 5. Управляющие операторы
Глава 6. Введение в классы, объекты и методы
Глава 7. Массивы и строки
Глава 8. Подробнее о методах и классах
Глава 9. Перегрузка операторов
Глава 10. Индексаторы и свойства
Глава 11. Наследование
Глава 12. Интерфейсы, структуры и перечисления
Глава 13. Обработка исключительных ситуаций
Глава 14. Применение средств ввода-вывода
Глава 15. Делегаты, события и лямбда-выражения
Глава 16. Пространства имен, препроцессор и сборки
Глава 17. Динамическая идентификация типов, рефлексия и атрибуты
Глава 18. Обобщения
Глава 19. LINQ
Глава 20. Небезопасный код, указатели, обнуляемые типы и разные ключевые слова
Глава 21. Пространство имен System
Глава 22. Строки и форматирование
Глава 23. Многопоточное программирование. Часть первая: основы
Глава 24. Многопоточное программирование. Часть вторая: библиотека TPL
Глава 25. Коллекции, перечислители и итераторы
Глава 26. Сетевые средства подключения к Интернету
Приложение. Краткий справочник по составлению документирующих комментариев
ГЛАВА 1. Создание C
C# является основным языком разработки программ на платформе .NET корпорацииMicrosoft. В нем удачно сочетаются испытанныесредства программирования с самыми последними новшествами и предоставляется возможность для эффективногои очень практичного написания программ, предназначенных для вычислительной среды современных предприятий.Это, без сомнения, один из самых важных языков программирования XXI века.
Назначение этой главы — представить C# в его историческом контексте, упомянув и те движущие силы, которыеспособствовали его созданию, выработке его конструктивных особенностей и определили его влияние на другие языки программирования. Кроме того, в этой главе поясняетсявзаимосвязь С# со средой .NET Framework. Как станет ясноиз дальнейшего материала, C# и .NET Framework совместнообразуют весьма изящную среду программирования.Генеалогическое дерево C
Языки программирования не существуют в пустоте. Напротив, они тесно связаныдруг с другом таким образом, что на каждый новый язык оказывают в той или инойформе влияние его предшественники. Этот процесс сродни перекрестному опылению,в ходе которого свойства одного языка приспосабливаются к другому языку, полезныенововведения внедряются в существующий контекст, а устаревшие конструкции удаляются. Таким путем развиваются языки программирования и совершенствуется искусство программирования. И в этом отношении C# не является исключением.
У языка программирования C# "богатое наследство". Он является прямым наследником двух самых удачных языков программирования: С и C++. Он также имеет тесныеродственные связи с еще одним языком: Java. Ясное представление об этих взаимосвязях имеет решающее значение для понимания С#. Поэтому сначала определим, какоеместо занимает C# среди этих трех языков.Язык С - начало современной эпохи программирования
Создание С знаменует собой начало современной эпохи программирования. ЯзыкС был разработан Деннисом Ритчи (Dennis Ritchie) в 1970-е годы для программирования на мини-ЭВМ DEC PDP-11 под управлением операционной системы Unix. Несмотря на то что в ряде предшествовавших языков, в особенности Pascal, был достигнутзначительный прогресс, именно С установил тот образец, которому до сих пор следуют в программировании.
Язык С появился в результате революции в структурном программированиив 1960-е годы. До появления структурного программирования писать большие программы было трудно, поскольку логика программы постепенно вырождалась в так называемый "макаронный" код — запутанный клубок безусловных переходов, вызовов ивозвратов, которые трудно отследить. В структурированных языках программированияэтот недостаток устранялся путем ввода строго определенных управляющих операторов, подпрограмм с локальными переменными и других усовершенствований. Благодаря применению методов структурного программирования сами программы сталиболее организованными, надежными и управляемыми.
И хотя в то время существовали и другие структурированные языки программирования, именно в С впервые удалось добиться удачного сочетания эффективности,изящества и выразительности. Благодаря своему краткому, но простому синтаксисув сочетании с принципом, ставившим во главу угла программиста, а не сам язык, С быстро завоевал многих сторонников. Сейчас уже нелегко представить себе, что С оказался своего рода "струей свежего воздуха", которого так не хватало программистам.В итоге С стал самым распространенным языком структурного программированияв 1980-е годы.
Но даже у такого достойного языка, как С, имелись свои ограничения. К числу самых труднопреодолимых его ограничений относится неспособность справиться с большими программами. Как только проект достигает определенного масштаба, язык Стут же ставит предел, затрудняющий понимание и сопровождение программ при ихпоследующем разрастании. Конкретный предел зависит от самой программы, программиста и применяемых инструментальных средств, тем не менее, всегда существует"порог", за которым программа на С становится неуправляемой.Появление ООП и C++
К концу 1970-х годов масштабы многих проектов приблизились к пределам, с которыми уже не могли справиться методики структурного программирования вообщеи язык С в частности. Для решения этой проблемы было открыто новое направлениев программировании — так называемое объектно-ориентированное программирование (ООП). Применяя метод ООП, программист мог работать с более "крупными"программами. Но главная трудность заключалась в том, что С, самый распространенный в то время язык, не поддерживал ООП. Стремление к созданию объектно-ориентированного варианта С в конечном итоге привело к появлению C++.
Язык C++ был разработан в 1979 году Бьярне Страуструпом (Bjarne Stroustrup), работавшим в компании Bell Laboratories, базировавшейся в Мюррей-Хилл, шт. Нью-Джерси. Первоначально новый язык назывался "С с классами", но в 1983 году он былпереименован в C++. Язык С полностью входит в состав C++, а следовательно, С служитоснованием, на котором зиждется C++. Большая часть дополнений, введенных Страуструпом, обеспечивала плавный переход к ООП. И вместо того чтобы изучать совершенно новый язык, программирующему на С требовалось лишь освоить ряд новыхсвойств, чтобы воспользоваться преимуществами методики ООП.
В течение 1980-х годов C++ все еще оставался в тени, интенсивно развиваясь, но к началу 1990-х годов, когда он уже был готов для широкого применения, его популярность в области программирования заметно возросла. К концу 1990-х годов он сталнаиболее широко распространенным языком программирования и в настоящее времяпо-прежнему обладает неоспоримыми преимуществами языка разработки высокопроизводительных программ системного уровня.