Книга: Microsoft Visual C#. Подробное руководство. 8-е издание
На главную: Предисловие
Дальше: Благодарности

Введение

Microsoft Visual C# представляет собой весьма эффективный и в то же время простой язык, предназначенный преимущественно для разработчиков, создающих сборки приложений в среде Microsoft .NET Framework. Visual C# уна­следовал множество лучших свойств от C++ и Microsoft Visual Basic, но при этом его разработчики постарались избавиться от различных несоответствий и анахронизмов, в результате чего появился более понятный и логичный язык. Версия C# 1.0 дебютировала в 2001 году. С появлением C# 2.0 вместе с Visual Studio 2005 в язык были добавлены несколько важных новых свойств, включая обобщения, итераторы и безымянные методы. В версию C# 3.0, выпущенную вместе с Visual Studio 2008, были добавлены методы расширений, лямбда-выражения и, что наиболее важно, встроенное в язык расширение, позволяющее выполнять запросы к данным, — Language-Integrated Query (LINQ). Версия C# 4.0 вышла в 2010 году и обеспечила дальнейшие усовершенствования, улучшающие совместимость с другими языками и технологиями. В число новых свойств входила поддержка именованных и необязательных аргументов и динамических типов, свидетельствующая о том, что среде выполнения, используемой языком, следует реализовывать для объекта позднюю привязку. Важным дополнением к среде .NET Framework, которое вышло параллельно с выпуском версии C# 4.0, стали классы и типы, составляющие библиотеку параллельно выполняемых задач (Task Parallel Library (TPL)). С помощью TPL можно создавать приложения, обладающие высокой степенью масштабируемости и способные по максимуму воспользоваться преимуществами, предоставляемыми многоядерными процессорами. В версию C# 5.0 была добавлена собственная поддержка асинхронной обработки данных на основе применения задач, реализуемая посредством модификатора методов async и оператора await. Версия C# 6.0 явилась дополняющим обновлением, включающим свойства, предназначенные для облегчения жизни разработчиков. К их числу относятся такие дополнения, как строковая интерполяция (теперь о выражении String.Format можно забыть навсегда!), усовершенствованные способы реализации свойств, методы, чье тело представлено в виде выражения, и многие другие улучшения. Все они рассматриваются в данной книге.

Еще одним важным событием для компании Microsoft стал выпуск Windows 10. Эта новая версия Windows сочетает в себе лучшие и наиболее полюбившиеся пользователям аспекты предыдущих версий операционной системы и поддержку приложений с высокой степенью интерактивности, способных совместно использовать данные и взаимодействовать друг с другом, а также подключаться к сервисам, развернутым в среде облачных вычислений. Ключевым понятием в Windows 10 являются приложения универсальной платформы Windows (Universal Windows Platform (UWP)), разработанные для выполнения на любом устройстве с Windows 10, имеющем ограниченные ресурсы, будь то полноценная настольная система, ноутбук, планшетный компьютер, смартфон или даже устройство так называемого Интернета вещей (Internet of Things (IoT)). После освоения основных функциональных возможностей C# важная роль будет отводиться приобретению навыков создания приложений, которые могут работать на всех этих платформах.

Облачные вычисления превратились в такой важный элемент архитектуры многих систем, от широко масштабируемых приложений для промышленных предприятий до мобильных приложений, работающих на пользовательских смартфонах, что я счел необходимым в заключительной главе данной книги сконцентрироваться именно на этом аспекте разработки.

Среда разработки, предоставляемая Visual Studio 2015, существенно упрощает использование функциональных возможностей языка, а многочисленные новые мастеры и усовершенствованные механизмы, включенные в последнюю версию, способны значительно повысить производительность труда разработчика. Надеюсь, что работа с книгой принесет вам столько же удовольствия, сколько я получил при ее написании!

Для кого предназначена эта книга

Предполагается, что читателем книги будет разработчик, желающий изучить основы программирования на C# с использованием среды Visual Studio 2015 и .NET Framework версии 4.6. Прочитав книгу, вы получите полное представление о языке C# и сможете воспользоваться им для создания адаптивных и широко масштабируемых приложений, способных работать под управлением операционной системы Windows 10.

Кому не следует читать эту книгу

Эта книга предназначена для разработчиков, ранее пользовавшихся языком C#, и не рассчитана на абсолютных новичков в вопросах программирования. Поэтому ее материал основан преимущественно на применении языка C#. Эта книга не задумывалась в качестве подробного описания множества технологий, доступных для создания приложений корпоративного уровня, работающих под управлением Windows, таких как ADO.NET, ASP.NET, Windows Communication Foundation или Windows Workflow Foundation. Если вам нужны дополнительные сведения обо всех этих технологиях, обратитесь к другим изданиям, выпущенным в Microsoft Press.

Структура книги

Книга разбита на четыре части.

• Часть I «Введение в Microsoft Visual C# и Microsoft Visual Studio 2015» представляет собой введение в основной синтаксис языка C# и приемы работы со средой программирования Visual Studio.

• Часть II «Основные сведения об объектной модели C#» рассматривает подробности создания новых типов в C# и управления ими, а также способы управления ресурсами, на которые ссылаются эти типы.

• Часть III «Определение расширяемых типов в C#» включает более подробное описание элементов, предоставляемых языком C# для создания типов, пригодных для многократного использования несколькими приложениями.

• Часть IV «Создание приложений универсальной платформы Windows с использованием C#» включает описание универсальной модели программирования Windows 10 и порядка использования C# с целью создания интерактивных приложений, предназначенных для этой новой модели.

С чего лучше начать изучение книги

Данная книга написана с целью помочь вам приобрести навыки в ряде важных областей. Она может стать полезной как для начинающих программистов, так и для тех, кто собирается перейти на C# с других языков программирования, например C, C++, Java или Visual Basic. Чтобы узнать, с чего лучше начать изу­чение материалов книги, обратитесь к следующей таблице.

Если вы

Выполните следующие действия

Новичок в области объектно-ориентированного программирования

1. Установите на свой компьютер файлы с примерами приложений согласно описанию в следующем далее разделе «Примеры кода».

2. Проработайте последовательно главы первых трех частей книги.

3. Проработайте часть IV сообразно уровню вашего опыта и интересов

Знакомы с таким языком процедурного программирования, как C, но новичок в программировании на C#

1. Установите на свой компьютер файлы с примерами приложений согласно описанию в следующем далее разделе «Примеры кода».

2. Бегло просмотрите первые пять глав, чтобы получить представление о C# и Visual Studio 2015, а затем сконцентрируйтесь на изучении глав с 6-й по 22-ю.

3. Проработайте часть IV сообразно уровню вашего опыта и интересов

Перешли с такого объектно-ориентированного языка программирования, как C++ или Java

1. Установите на свой компьютер файлы с примерами приложений согласно описанию в следующем далее разделе «Примеры кода».

2. Бегло просмотрите первые семь глав, чтобы получить представление о C# и Visual Studio 2015, а затем сконцентрируйтесь на изучении глав с 8-й по 22-ю.

3. За сведениями по созданию приложений универсальной платформы Windows обратитесь к части IV данной книги

Переключаетесь с Visual Basic на C#

1. Установите на свой компьютер файлы с примерами приложений согласно описанию в следующем далее разделе «Примеры кода».

2. Проработайте последовательно главы первых трех частей книги.

3. За сведениями по созданию приложений универсальной платформы Windows обратитесь к части IV данной книги.

4. Прочитайте разделы «Краткий справочник» в конце глав, чтобы получить сведения о специфике программных конструкций C# и Visual Studio 2015

Обращаетесь к книге уже после проработки всех упражнений

1. Для поиска информации по конкретной теме воспользуйтесь предметным указателем или оглавлением.

2. Прочитайте раздел «Краткий справочник» в конце каждой главы с целью поиска обобщающего обзора синтаксиса и технологий, представленных в главе

Многие главы книги включают практические примеры, позволяющие проверить на деле только что изученные концепции. Но на каком бы разделе вы ни сосредоточились, следует загрузить и установить на свою систему примеры приложений.

Условные обозначения и особенности оформления

Эта книга предоставляет информацию в соответствии с соглашениями, которые призваны сделать информацию удобной и простой для усвоения.

• Каждое упражнение состоит из серий задач, зачастую разбитых на отдельные абзацы, с описанием тех действий, которые вам следует предпринять для его выполнения.

• Во врезках с пометкой ПРИМЕЧАНИЕ предоставляется дополнительная информация или альтернативные методы для успешного завершения того или иного этапа упражнения.

• Текст, который вам следует набрать (помимо блоков кода), дан жирным шрифтом.

• Знак «плюс» (+) между двумя названиями клавиш означает, что клавиши следует нажимать одновременно. Например, «Нажмите Alt+Tab» означает, что, удерживая в нажатом состоянии клавишу Alt, следует нажать клавишу Tab.

Требования к системе

Для выполнения практических упражнений, предлагаемых в данной книге, вам понадобятся следующее оборудование и программные средства:

• Windows 10 профессиональная редакция (или выше);

• редакция Visual Studio Community 2015, Visual Studio Professional 2015 или Visual Studio Enterprise 2015.

ВНИМАНИЕ

171108.png

Вам нужно с помощью Visual Studio 2015 установить инструментарий разработчика приложений под Windows 10.

• компьютер, имеющий процессор с тактовой частотой не ниже 1,6 ГГц (рекомендуется 2 ГГц);

• 1 Гбайт (на 32-разрядной системе) или 2 Гбайт (на 64-разрядной системе) оперативной памяти (дополнительно 512 Мбайт памяти при запуске на виртуальной машине);

• 10 Гбайт доступного дискового пространства;

• жесткий диск с частотой вращения шпинделя 5400 об./мин;

• видеокарта, совместимая с технологией DirectX 9 при разрешении дисплея не ниже 1024 × 768;

• DVD-привод (если установка Visual Studio будет выполняться с DVD-диска);

• интернет-подключение для загрузки программных средств или примеров к главам.

В зависимости от используемой конфигурации Windows для установки и настройки Visual Studio 2015 вам могут понадобиться права администратора.

Для создания и запуска UWP-приложений вам также потребуется включить на своем компьютере режим разработчика. Подробные сведения о необходимых для этого действиях можно найти в статье «Включение устройства для разработки» по адресу .

Примеры кода

В большинстве глав данной книги имеются упражнения, с помощью которых можно в интерактивном режиме получить практические навыки использования только что изученного материала основного текста. Все учебные проекты можно загрузить в обоих форматах, стартовом и финишном, с веб-страницы .

173092.png

ПРИМЕЧАНИЕ В дополнение к примерам кода на вашей системе должна быть установлена среда Visual Studio 2015. По мере доступности следует также установить самые последние обновления для Windows и Visual Studio.

Установка примеров кода

Для установки примеров кода на свой компьютер, чтобы их можно было использовать с упражнениями, рассматриваемыми в данной книге, выполните следующие действия.

1. Разархивируйте файл CSharpSBS.zip, загруженный с веб-сайта книги, извлекая из него файлы в свою папку документов.

2. Если будет предложено, просмотрите соглашение о лицензии конечного пользователя. Если вас все устроит, выберите пункт Accept (Принимаю), а затем щелкните на кнопке Next (Далее).

173111.png

ПРИМЕЧАНИЕ Если лицензионное соглашение не появится, вы можете обратиться за ним с той же веб-страницы, которая использовалась для загрузки файла CSharpSBS.zip.

Использование примеров кода

Когда и как используется тот или иной пример кода, объясняется в каждой главе. Когда приходит время использовать пример кода, в книге дается перечень инструкций, объясняющих порядок открытия файлов.

174788.png

ВНИМАНИЕ Многие из примеров кода зависят от пакетов NuGet, не включенных в код. Эти пакеты загружаются автоматически при первой сборке проекта. В результате этой особенности, если открыть проект и изучить код перед выполнением сборки, Visual Studio может отрапортовать о большом количестве ошибок, возникших из-за ссылок, не нашедших разрешения. Сборка проекта заставит среду найти нужное разрешение этих ссылок, и ошибки должны исчезнуть.

Для любителей подробностей приводится перечень учебных проектов и решений Visual Studio 2015, сгруппированных в папки, в которых их можно найти. Во многих случаях упражнения предоставляют начальные файлы и завершенные версии одних и тех же проектов, которые могут использоваться в качестве эталона. Завершенные версии проектов для каждой главы сохранены в папках с названием «Complete».

Проект или решение

Описание

Chapter 1

TextHello

Этот проект позволяет приступить к работе с языком. В нем представлено поэтапное создание простой программы, выводящей на экран текстовое приветствие

Hello

Этот проект открывает окно, приглашающее пользователя ввести свое имя, после чего выводит на экран приветствие

Chapter 2

PrimitiveDataTypes

Этот проект показывает, как объявляются переменные путем использования каждого из элементарных типов, как этим переменным присваиваются значения и как их значения отображаются в окне

MathsOperators

Эта программа показывает применение арифметических операторов (+, –, *, /, %)

Chapter 3

Methods

В этом проекте пересматривается код проекта MathsOperators и изучается порядок использования методов для структурирования кода

DailyRate

Этот проект проводит вас через написание собственных методов, запуск методов и пошаговое выполнение кода при вызове метода с использованием отладчика Visual Studio 2015

DailyRate Using Optional Parameters

Этот проект показывает, как определить метод, получающий необязательные параметры, и вызвать этот метод с использованием именованных аргументов

Chapter 4

Selection

Этот проект показывает, как для реализации сложной логики, такой как сравнение равенства двух дат, используется цепочка инструкций if

SwitchStatement

Эта простая программа использует инструкцию switch для преобразования символов в их XML-представления

Chapter 5

WhileStatement

Этот проект демонстрирует работу инструкции while, построчно считывающей содержимое исходного файла и выводящей каждую строку на экран в текстовом поле формы

DoStatement

Этот проект используется для перевода десятичного числа в его восьмеричное представление

Chapter 6

MathsOperators

Этот проект повторно обращается к проекту MathsOperators из главы 2 и показывает, как различные необрабатываемые исключения могут привести к аварийному завершению программы. Затем надежность приложения повышается с помощью использования конструкций с ключевыми словами try и catch, позволяя исключить последующие аварийные завершения работы этого приложения

Chapter 7

Classes

Этот проект охватывает основы определения ваших собственных классов, комплектуемых открытыми конструкторами, методами и закрытыми полями. Он также показывает, как с помощью ключевого слова new создаются экземпляры класса и как определяются статические методы и поля

Chapter 8

Parameters

Эта программа исследует разницу между параметрами значений и параметрами ссылок. Она показывает порядок использования ключевых слов ref и out

Chapter 9

StructsAndEnums

Этот проект определяет с помощью ключевого слова struct тип в виде структуры, предназначенный для представления календарной даты

Chapter 10

Cards

Этот проект показывает использование массива для моделирования сдачи карт на руки при карточной игре

Chapter 11

ParamsArray

Этот проект демонстрирует порядок использования ключевого слова params для создания простого метода, способного принимать любое количество int-аргументов

Chapter 12

Vehicles

Этот проект создает простую иерархию классов транспортных средств путем использования наследования. Он также показывает порядок определения виртуального метода

ExtensionMethod

Этот проект показывает, как создается метод расширения для int-типа, предоставляющий метод, который преобразует целое число по основанию 10 в число с другим основанием системы счисления

Chapter 13

Drawing

Этот проект реализует на практике использование части графического пакета рисования. Для определения методов, предоставляемых и реализуемых классами рисуемых фигур, в проекте используются интерфейсы

Drawing Using Interfaces

Этот проект служит отправным пунктом для расширения проекта Drawing с целью помещения общих функций объектов, представляющих рисуемые фигуры, в абстрактные классы

Chapter 14

GarbageCollectionDemo

Этот проект показывает порядок реализации высвобождения ресурсов независимо от выдачи исключений путем использования метода Dispose

Chapter 15

Drawing Using Properties

Этот проект расширяет приложение в проекте Drawing, разработанное в главе 13 с целью инкапсуляции данных в классе путем использования свойств

AutomaticProperties

Этот проект показывает порядок создания свойств для класса в автоматическом режиме и порядок их использования для инициализации экземпляров класса

Chapter 16

Indexers

Этот проект использует два индексатора: один для поиска телефонного номера сотрудника, когда задано его имя, а второй — для поиска имени сотрудника, когда задан его номер телефона

Chapter 17

BinaryTree

Это решение показывает, как обобщения используются для создания структур, не зависящих от используемых типов и способных содержать элементы любого типа

IteratorBinaryTree

Это решение использует итератор для генерирования нумератора для класса-обобщения Tree

Chapter 18

Cards

Этот проект обновляет код из главы 10, чтобы показать использование коллекций для моделирования сдачи карт на руки при карточной игре

Chapter 19

BinaryTree

Этот проект показывает порядок реализации интерфейса-обобщения IEnumerator<T> с целью создания нумератора для класса-обобщения Tree

IteratorBinaryTree

Это решение использует итератор с целью создания нумератора для класса-обобщения Tree

Chapter 20

Delegates

Этот проект показывает, как отвязать метод от логики приложения, вызывающей его с использованием делегата. Затем проект расширяется, чтобы показать, как использовать событие, чтобы предупредить объект о важном происшествии, и как перехватить событие и выполнить любую требуемую обработку

Chapter 21

QueryBinaryTree

Этот проект показывает порядок использования LINQ-запросов для извлечения данных из объекта двоичного дерева

Chapter 22

ComplexNumbers

Этот проект определяет новый тип, моделирующий комплексные числа и реализующий для него самые распространенные операторы

Chapter 23

GraphDemo

Этот проект генерирует сложную графику и выводит ее на экран в форме, принадлежащей UWP-приложению. Для выполнения вычислений в нем используется один поток

Parallel GraphDemo

Эта версия проекта GraphDemo использует класс Parallel для абстрагирования процесса создания задач и управления ими

GraphDemo With Cancellation

Этот проект показывает порядок реализации отмены для остановки задач до их завершения управляемым способом

ParallelLoop

Это приложение представляет пример, показывающий, когда не следует использовать класс Parallel для создания и запуска задач

Chapter 24

GraphDemo

Это версия проекта GraphDemo из главы 23, которая использует ключевое слово async и оператор await для выполнения вычислений, генерирующих данные графического рисунка в асинхронном режиме

PLINQ

Этот проект показывает ряд примеров использования PLINQ для запроса данных с использованием одновременно выполняемых задач

CalculatePI

Этот проект использует для вычисления приблизительных значений числа π алгоритм статистической выборки. В нем используются одновременно выполняемые задачи

Chapter 25

Customers

Этот проект реализует масштабируемый пользовательский интерфейс, который адаптируется к различным положениям устройства и его форм-факторам. Применяется XAML-стилизация для замены шрифтов и фонового изображения, отображаемых приложением

Chapter 26

DataBinding

Это версия проекта Customers, использующая привязку данных для отображения сведений о клиентах, извлеченных из источника данных в пользовательском интерфейсе. В ней также показывается порядок реализации интерфейса INotifyPropertyChanged, позволяющего пользовательскому интерфейсу обновлять сведения о клиентах и отправлять эти изменения обратно в адрес источника данных

ViewModel

Эта версия проекта Customers отделяет пользовательский интерфейс от логики, обращающейся к источнику данных, путем реализации схемы Model — View — ViewModel (модель — представление — модель представления)

Chapter 27

Web Service

Это решение включает веб-приложение, предоставляющее веб-сервис ASP.NET Web API, который используется приложением Customers для извлечения сведений о клиентах из базы данных SQL Server. Для доступа к базе данных веб-сервис использует entity-модель, созданную средой Entity Framework

От издательства

Ваши замечания, предложения, вопросы отправляйте по адресу (издательство «Питер», компьютерная редакция).

Мы будем рады узнать ваше мнение!

На веб-сайте издательства вы найдете подробную информацию о наших книгах.

Раздел, посвященный поиску на компьютере данных с использованием в Win­dows 10 системы голосового ввода Кортана, в русском переводе исключен из главы 26. Эта система в русскоязычной версии Windows 10 не реализована и ее включение в операционной системе заблокировано.

Дальше: Благодарности

Антон
Перезвоните мне пожалуйста 8(812)642-29-99 Антон.
Антон
Перезвоните мне пожалуйста по номеру 8(904) 332-62-08 Антон.
Антон
Перезвоните мне пожалуйста, 8 (904) 606-17-42 Антон.
Антон
Перезвоните мне пожалуйста по номеру. 8 (953) 367-35-45 Антон
Ксения
Текст от профессионального копирайтера. Готово через 1 день. Консультация бесплатно. Жми roholeva(точка)com