Изучаем C#
Книга «Изучаем C#» во втором своем издании посвящена последним версиям C#, .NET 4.0 и Visual Studio 2010. Она будет интересна всем, изучающим язык программирования C#. В отличие от большинства пособий по программированию, построенных на основе скучного изложения спецификаций и примеров, с ней читатель сможет сразу приступить к написанию собственного кода на языке программирования C# с самого начала. Если вы учитесь, готовитесь к экзамену или пытаетесь освоить сложную техническую тему, ваш мозг пытается оказать вам услугу. Он старается сделать так, чтобы на эту очевидно несущественную информацию не тратились драгоценные ресурсы. Их лучше потратить на что-нибудь важное. Так как же заставить его изучить C#? Вы освоите минимальный набор инструментов, а далее примете участие в забавных и интересных программных проектах: от разработки карточной игры до создания серьезного бизнес-приложения.
Обзор книги «Изучаем C#»
Эффективность с C# и визуальные приложения за 10 минут. C# – это мощный язык программирования. Благодаря Visual Studio вам не потребуется писать непонятный код, чтобы заставить кнопку работать. Вместо того чтобы запоминать параметры метода для имени и для ярлыка кнопки, вы сможете сфокусироваться на достижении результата.
- Зачем вам изучать C#
- C#, ИСР Visual Studio многое упрощают
- Перед началом работы выясните, что именно нужно пользователю
- Это вы делаете в Visual Studio
- Создаем пользовательский интерфейс
- Visual Studio, за сценой
- Редактирование кода
- Первый запуск приложения
- Для хранения информации нужна база данных
- База данных, созданная ИСР
- Язык SQL
- Создание таблицы для списка контактов
- Поля в контактной карте – это столбцы таблицы
- Завершение таблицы
- Перенос в базу данных с карточек
- Источник данных соединит форму с базой
- Добавление элементов, связанных с базой данных
- Тестирование
- Как превратить ваше приложение в приложение для всех
- Передаем приложение пользователям
- Работа не окончена: проверим процесс установки
Это всего лишь код. ИСР может сделать за вас многое, но не все. При написании приложений часто приходится решать повторяющиеся задачи. Пусть эту работу выполняет ИСР. Вы же будете в это время думать над более глобальными вещами. Научившись писать код, вы получите возможность решить любую задачу.
- Как рождаются программы
- Писать код помогает ИСР
- Любые действия ведут к изменению кода
- Структура программы
- Начало работы программы
- Редактирование точки входа
- Классы могут принадлежать одному пространству имен
- Что такое переменные
- Знакомые математические символы
- Наблюдение за переменными в процессе отладки
- Циклы
- Оператор выбора
- Проверка условий
Объекты как приемы программирования. Перед написанием программы нужно четко сформулировать, какую задачу она будет решать. Именно поэтому так полезны объекты. Ведь они позволяют структурировать код наиболее удобным образом. Вы же можете сосредоточиться на обдумывании путей решения, так как вам не нужно тратить время на написание кода. Правильное использование объектов позволяет получить интуитивно понятный код, который при необходимости можно легко отредактировать.
- Методы прокладки и редактирования маршрутов
- Построим программу с использованием классов
- Возьмите класс и постройте объект
- Экземпляры
- Поля
- Создаем экземпляры
- Что происходит в памяти программы
- Значимые имена
- Структура классов
- Выбор структуры класса при помощи диаграммы
- Форма для взаимодействия с кодом
- Более простые способы присвоения начальных значений
Типы и ссылки. Взяв информацию от пользователей, вы производите новую информацию, чтобы вернуть ее им же. Практически все в программировании связано с обработкой данных тем или иным способом. Вы познакомитесь с используемыми в C# типами данных, узнаете методы работы с ними и даже ужасный секрет, что объекты – это тоже данные.
- Тип переменной определяет, какие данные она может сохранять
- Наглядное представление переменных
- Приведение типов
- Автоматическая коррекция слишком больших значений
- Иногда приведение типов происходит автоматически
- Аргументы метода должны быть совместимы с типами параметров
- Комбинация с оператором =
- Объекты тоже используют переменные
- Переменные ссылочного типа
- Ссылки подобны маркерам
- При отсутствии ссылок объект превращается в мусор
- Побочные эффекты множественных ссылок
- Две ссылки это два способа редактировать данные объекта
- Особый случай: массивы
- Массив может состоять из ссылочных переменных
- Ссылки позволяют объектам обращаться друг к другу
Инкапсуляция – пусть личное остается личным. Иногда объекты чувствуют то же самое. Вы же не хотите, чтобы посторонние люди читали ваши записки или рассматривали банковские выписки. Вот и объекты не хотят, чтобы другие объекты имели доступ к их полям. Здесь разговор пойдет об инкапсуляции. Вы научитесь закрывать объекты и добавлять методы защищающие данные от доступа.
- Как происходит оценка
- Каждый вариант нужно было считать отдельно
- Неправильное использование объектов
- Инкапсуляция как управление доступом к данным
- Доступ к методам и полям класса
- Закрытые поля и методы доступны только изнутри класса
- Инкапсуляция сохраняет данные нетронутыми
- Инкапсуляция при помощи свойств
- Приложение для проверки класса
- Автоматические свойства
- Редактируем множитель feed
- Конструктор
Наследование и генеалогическое древо объектов. Вы встречали объект, который действует почти так, как нужно? Думали ли вы о том, какое совершенство можно было бы получить, изменив всего несколько элементов? Именно по этой причине наследование является одним из самых мощных инструментов C#. Вы узнаете, как производный класс повторяет поведение родительского, сохраняя при этом гибкость редактирования, научитесь избегать дублирования кода и облегчите последующее редактирование своих программ.
- Организация дней рождения – это тоже работа Кэтлин
- Планировщик мероприятий, версия 2.0
- Наследование
- Модель классов: от общего к частному
- Иерархия классов
- Производные классы расширяют базовый
- Синтаксис наследования
- При наследовании поля свойства и методы базового класса добавляются к производному
- Перекрытие методов
- Вместо базового класса можно взять один из производных
- Производный класс умеет скрывать методы
- Ключевые слова override и virtual
- Ключевое слово base
- Если в базовом классе присутствует конструктор, он должен остаться и в производном классе
- Построение основ
Интерфейсы и абстрактные классы. Иногда возникает необходимость сгруппировать объекты по выполняемым функциям, а не по классам, от которых они наследуют. Здесь вам на помощь приходят интерфейсы, они позволяют работать с любым классом, отвечающим вашим потребностям. Но чем больше возможностей, тем выше ответственность, но если классы, реализующие интерфейс, не выполнят обязательств, программа компилироваться не будет.
- Интерфейсы
- Классы, реализующие интерфейсы, должны включать все методы интерфейсов
- Учимся работать с интерфейсами
- Ссылки на интерфейс
- Ссылка на интерфейс аналогична ссылке на объект
- Интерфейсы и наследование
- Восходящее приведение
- Нисходящее приведение
- Нисходящее и восходящее приведение интерфейсов
- Модификаторы доступа
- Изменение видимости при помощи модификаторов доступа
- Классы, для которых недопустимо создание экземпляров
- Абстрактный класс. Перепутье между классом и интерфейсом
- Как уже было сказано, недопустимо создавать экземпляры некоторых классов
- Абстрактный метод не имеет тела
- Различные формы объекта
Перечисления и коллекции, большие объемы данных. В реальном мире данные, как правило, не хранятся маленькими кусочками. Данные приходят вагонами, штабелями и кучами. Для их систематизации нужны мощные инструменты, и тут вам на помощь приходят коллекции. Они позволяют хранить, сортировать и редактировать данные, которые обрабатывает программа. В результате вы можете сосредоточиться на основной идее программирования, оставив задачу отслеживания данных коллекциям.
- Категории данных не всегда можно сохранять в переменных типа string
- Перечисления
- Присвоим числам имена
- Проблемы работы с массивами
- Коллекции
- Коллекции List
- Динамическое изменение размеров
- Обобщенные коллекции
- Инициализаторы коллекций
- Сортировка элементов коллекции
- Способы сортировки
- Создадим экземпляр объекта-компаратора
- Сложные схемы сравнения
- Перекрытие метода ToString()
- Обновим цикл foreach
- Интерфейс IEnumerable<T>
- Восходящее приведение с помощью IEnumerable
- Создание перегруженных методов
- Словари
- Дополнительные типы коллекций
- Звенья следуют в порядке их поступления
- Звенья следуют в порядке, обратном порядку их поступления
Чтение и запись файлов. Пока что все ваши программы жили недолго. Они запускались, некоторое время работали и закрывались. Но этого недостаточно, когда имеешь дело с важной информацией. Вы должны уметь сохранять свою работу. Теперь стоит поговорить о том, как записать данные в файл, а затем о том, как прочитать эту информацию. Вы познакомитесь с потоковыми классами .NET и узнаете о тайнах шестнадцатеричной и двоичной систем счисления.
- Для чтения и записи данных в .NET используются потоки
- Различные потоки для различных данных
- Объект FileStream
- Трехшаговая процедура записи текста в файл
- Чтение и запись при помощи двух объектов
- Встроенные объекты для вызова стандартных окон диалога
- Встроенные классы File и Directory
- Открытие и сохранение файлов при помощи окон диалога
- Интерфейс IDisposable
- Операторы using как средство избежать системных ошибок
- Запись файлов сопровождается принятием решений
- Оператор switch
- Чтение и запись информации о картах в файл
- Сериализации подвергается не только сам объект
- Сериализация позволяет читать и записывать объект целиком
- .NET использует Unicode для хранения символов и текста
- Перемещение данных внутри массива байтов
- Класс BinaryWriter
- Чтение и запись сериализованных файлов вручную
- Сложности работы с двоичными файлами
- Программа для создания дампа
- Достаточно StreamReader и StreamWriter
- Чтение байтов из потока
Обработка исключений. Вы усердно работали, штудировали технические руководства и достигли вершины: теперь вы главный программист. Но вам до сих пор продолжают звонить с работы по ночам, потому что программа упала или работает неправильно. Ничто так не выбивает из колеи, как необходимость устранять странные ошибки, но благодаря обработке исключений вы сможете написать код, который сам будет разбираться с возможными проблемами.
- Объект Exception
- Исключения наследуют от объекта Exception
- Работа с отладчиком
- Поиск ошибки в приложении с помощью отладчика
- Ключевые слова try и catch
- Вызов сомнительного метода
- Результаты применения ключевых слов try/catch
- Ключевое слово finally
- Получения информации о проблеме
- Обработка исключений разных типов
- Один класс создает исключение, другой его обрабатывает
- Оператор using как комбинация операторов try и finally
- Избегаем исключений при помощи интерфейса IDisposable
- Наихудший вариант блока catch
- Краткие принципы обработки исключений
События и делегаты. Что делает ваш код, когда вы на него не смотрите? Иногда что-то происходит, и хотелось бы, чтобы объекты умели реагировать на происходящее. Здесь вам на помощь приходят события. Один объект их публикует, другие объекты на них подписываются, и система работает, а для контроля подписчиков вам пригодится метод обратного вызова.
- Хотите, что объекты научились думать сами
- Как объекты узнают, что произошло
- События
- Один объект инициирует событие, другой реагирует на него
- Обработка события
- Автоматическое создание обработчиков событий
- Обобщенный EventHandler
- Все формы используют события
- Несколько обработчиков одного события
- Связь между издателями и подписчиками
- Делегат замещает методы
- Делегаты в действии
- Объект может подписаться на событие
- Обратный вызов
- Обратный вызов как способ работы с делегатами
Обзор и предварительные результаты. Пока вы не начнете писать работающий код, вряд ли можно быть уверенным, что вы на самом деле усвоили сложные понятия C#. Здесь вам предлагается заняться применением на практике полученных ранее знаний. Кроме того, вы найдете предварительные сведения о понятиях, которые будут рассматриваться далее. Вы начнете построение действительно сложного приложения, чтобы закрепить свои навыки.
- Программисты против бездомных пчел
- Построение класса Hive
- Метод Go() для улья
- Все готово для класса World
- Система, основанная на кадрах
- Код для класса World
- Основная форма
- Получение статистики
- Таймеры
- Коллекция коллекционирует
- LINQ упрощает работу с коллекциями и базами данных
- Тестирование (вторая попытка)
- Последние штрихи: Open и Save
Элементы управления и графические фрагменты. До этого момента визуальный аспект наших приложений был отдан на откуп элементам управления, но иногда этого недостаточно, например, если вы хотите анимировать изображение. Вам предстоит научиться создавать свои элементы управления для .NET, применять двойную буферизацию и даже рисовать непосредственно на формах.
- Элементы управления как средство взаимодействия с программой
- Элементы управления – это тоже объекты
- Формы для визуализации
- Первый анимированный элемент управления
- Удаление дочерних элементов управления
- Класс UserControl
- Построение визуализатора
- Соединим основную форму с другими формами
- Проблемы с производительностью
- Объект Graphics
- Объект Bitmap
- Пространство имен System.Drawing
- Знакомство с GDI+
- Рисуем на форме
- Решение проблемы с прозрачностью
- Событие Paint
- Перерисовка форм и элементов управления
- Двойная буферизация
- Вывод на печать
- Окно предварительного просмотра и окно диалога Print
Капитан Великолепный или "смерть объекта"…
- Метод завершения объекта
- Когда запускает метод завершения объекта
- Явное и неявное высвобождение ресурсов
- Возможные проблемы
- Сериализуем объект в методе Dispose()
- Структура напоминает объект, но объектом не является
- Значения копируются, а ссылки присваиваются
- Структуры – это значимые, а объекты – ссылочные типы
- Сравнение стека и кучи
- Необязательные параметры
- Типы, допускающие значение null
- Типы, допускающие значение null, увеличивают робастность программы
- Сравнение
- Методы расширения
- Расширяем фундаментальный тип: string
LINQ: управляем данными. Времена, когда можно было программировать днями и даже неделями, не касаясь множества данных, давно позади. В наши дни с данными связано все. Часто приходится работать с данными из разных источников и даже разных форматов. Базы данных, XML, коллекции из других программ – все это давно стало частью работы программиста на C#. В этом ему помогает LINQ. Эта функция не только упрощает запросы, но и умеет разбивать данные на группы и, наоборот, соединять данные из различных источников.
- Простой проект, но сначала нужно собрать данные
- Сбор данных из разных источников
- Коллекции .NET уже настроены под LINQ
- Простой способ сделать запрос
- Сложные запросы
- Универсальность LINQ
- Группировка результатов запроса
- Предложение join
- LINQ Sequence
- Соединение LINQ с базой данных SQL
Важной особенностью книги «Изучаем C#» является уникальный способ подачи материала, выделяющий серию "Head First" издательства O'Reilly в ряду множества скучных изданий, посвященных программированию.
Формат: PDF + файлы примеров
Качество: eBook
Страниц: 696
Купить книгу «Изучаем C#»
Интернет-магазин OZON.RU: Изучаем C# / Интернет-магазин OZON.RU / Описание товара / Изучаем C# / Интернет-магазин OZON.RU / Оформить заказ
Скачать бесплатно книгу «Изучаем C#»
- Архив CS_HeadFirst.rar 36.85 Мб: Изучаем C# / Depositfiles.com / Архив CS_HeadFirst.rar