Изучаем C#

Э. Стиллмен, Дж. Грин

В отличие от большинства книг по программированию, построенных на основе скучного изложения спецификаций и примеров, с этой книгой читатель сможет сразу приступить к написанию собственного кода на языке программирования C# с самого начала. Вы освоите минимальный набор инструментов, а далее примете участие в забавных и интересных программных проектах: от разработки карточной игры до создания серьезного бизнес-приложения. Второе издание книги включает последние версии C# .NET 4.0 и Visual Studio 2010 и будет интересно всем, изучающим язык программирования С#.

Особенностью данного издания является уникальный способ подачи материала, выделяющий серию «Head First» издательства O'Reilly в ряду множества скучных книг, посвященных программированию.

Издательство: Питер, 2013 г.

ISBN 978-5-4461-0105-4, 978-5-459-00422-9, 978-1-4493-8034-2

Количество страниц: 704.

Содержание книги «Изучаем C#»:

  • 23 Введение
    • 24 Для кого написана эта книга
    • 25 Мы знаем, о чем вы думаете
    • 27 Метапознание: наука о мышлении
    • 29 Заставьте свой мозг повиноваться
    • 30 Что вам потребуется
    • 31 Информация
    • 32 Технические рецензенты
    • 33 Благодарности
  • 35 1. Эффективность в C#. Визуальные приложения за 10 минут
    • 36 Зачем вам изучать C#
    • 37 C#, ИСР Visual Studio многое упрощают
    • 38 Избавьте директора от бумаг
    • 39 Перед началом работы выясните, что именно нужно пользователю
    • 40 Что мы собираемся сделать
    • 42 Это вы делаете в Visual Studio
    • 42 А это Visual Studio делает за вас
    • 46 Создаем пользовательский интерфейс
    • 48 Visual Studio, за сценой
    • 49 Редактирование кода
    • 50 Первый запуск приложения
    • 50 Где же мои файлы?
    • 51 Вот что уже сделано
    • 52 Для хранения информации нужна база данных
    • 53 База данных, созданная ИСР
    • 53 Язык SQL
    • 54 Создание таблицы для списка контактов
    • 56 Поля в контактной карте – это столбцы таблицы People
    • 59 Завершение таблицы
    • 60 Перенос в базу данных с карточек
    • 62 Источник данных соединит форму с базой
    • 64 Добавление элементов, связанных с базой данных
    • 66 Хорошие программы понятны интуитивно
    • 68 Тестирование
    • 69 Как превратить ВАШЕ приложение в приложение для ВСЕХ
    • 71 Работа НЕ окончена: проверим процесс установки
    • 72 Управляющее данными приложение готово
  • 73 2. Это всего лишь код. Под покровом
    • 74 Когда вы делаете это
    • 75 ... ИСР делает это
    • 76 Как рождаются программы
    • 78 Писать код помогает ИСР
    • 80 Любые действия ведут к изменению кода
    • 82 Структура программы
    • 84 Начало работы программы
    • 86 Редактирование точки входа
    • 91 Классы могут принадлежать одному пространству имен
    • 92 Что такое переменные
    • 94 Знакомые математические символы
    • 95 Наблюдение за переменными в процессе отладки
    • 97 Циклы
    • 98 Перейдем к практике
    • 99 Оператор выбора
    • 100 Проверка условий
  • 115 3. Объекты, по порядку стройся! Приемы программирования
    • 116 Что думает Майк о своих проблемах
    • 117 Проблема Майка с точки зрения навигационных систем
    • 118 Методы прокладки и редактирования маршрутов
    • 119 Построим программу с использованием классов
    • 121 Идея Майка
    • 122 Объекты как способ решения проблемы
    • 123 Возьмите класс и постройте объект
    • 124 Экземпляры
    • 125 Простое решение!
    • 130 Поля
    • 131 Создаем экземпляры
    • 132 Спасибо за память
    • 133 Что происходит в памяти программы
    • 134 Значимые имена
    • 136 Структура классов
    • 138 Выбор структуры класса при помощи диаграммы
    • 142 Помогите парням
    • 144 Проект «Парни»
    • 147 Более простые способы присвоения начальных значений
  • 153 4. Типы и ссылки. 10:00 утра. Куда подевались наши данные?
    • 154 Тип переменной определяет, какие данные она может сохранить
    • 156 Наглядное представление переменных
    • 157 10 литров в пятилитровой банке
    • 158 Приведение типов
    • 159 Автоматическая коррекция слишком больших значений
    • 160 Иногда приведение типов происходит автоматически
    • 161 Аргументы метода должны быть совместимы с типами параметров
    • 166 Комбинация с оператором =
    • 167 Объекты тоже используют переменные
    • 168 Переменные ссылочного типа
    • 169 Ссылки подобны маркерам
    • 170 При отсутствии ссылок объект превращается в мусор
    • 171 Побочные эффекты множественных ссылок
    • 176 Две ссылки это ДВА способа редактировать данные объекта
    • 177 Особый случай: массивы
    • 177 Массив
    • 178 Массив может состоять из ссылочных переменных
    • 179 Добро пожаловать на распродажу сэндвичей от Джо!
    • 181 Ссылки позволяют объектам обращаться друг к другу
    • 182 Сюда объекты еще не отправлялись
    • 187 Играем в печатную машинку
  • 195 5. Инкапсуляция. Пусть личное остается... личным
    • 196 Кэтлин профессиональный массовик-затейник
    • 197 Как происходит оценка
    • 202 Кэтлин тестирует программу
    • 204 Каждый вариант нужно было считать отдельно
    • 206 Неправильное использование объектов
    • 206 Форма
    • 207 Инкапсуляция как управление доступом к данным
    • 208 Доступ к данным и полям класса
    • 209 НА САМОМ ЛИ ДЕЛЕ защищено поле realName?
    • 210 Закрытые поля и методы доступны только изнутри класса
    • 218 Инкапсуляция сохраняет данные нетронутыми
    • 219 Инкапсуляция при помощи свойств
      • 220 Приложение для проверки класса Farmer
    • 221 Автоматические свойства
    • 222 Редактируем множитель feed
    • 223 Конструктор
  • 231 6. Наследование. Генеалогическое древо объектов
    • 232 Организация дней рождения – это тоже работа Кэтлин
    • 233 Нам нужен класс BirstdayParty
    • 234 Планировщик мероприятий, версия 2.0
    • 241 Дополнительный взнос за мероприятия с большим количеством гостей
    • 242 Наследование
    • 243 Модель классов: от общего к частному
    • 244 Симулятор зоопарка
    • 248 Иерархия классов
    • 249 Производные классы расширяют базовый
    • 250 Синтаксис наследования
    • 253 При наследовании поля свойств и методы базового класса добавляются к производному
    • 254 Перекрытие методов
    • 255 Вместо базового класса можно взять один из производных
    • 262 Производный класс умеет скрывать методы
    • 264 Ключевые слова override и virtual
    • 266 Ключевое слово base
    • 267 Если в базовом классе присутствует конструктор, он должен остаться и в производном классе
    • 268 Теперь мы готовы завершить программу для Кэтлин!
    • 273 Система управления ульем
    • 274 Построение основ
    • 282 Совершенствуем систему управления ульем при помощи наследования
  • 283 7. Интерфейсы и абстрактные классы. Пусть классы держат обещания
    • 284 Вернемся к нашим пчелам
    • 285 Классы для различных типов пчел
    • 286 Интерфейсы
    • 289 Классы, реализующие интерфейсы, должны включать ВСЕ методы интерфейсов
    • 290 Учимся работать с интерфейсами
    • 293 Ссылка на интерфейс аналогична ссылке на объект
    • 295 Интерфейсы и наследование
    • 296 RoboBee 4000 функционирует без меда
    • 298 Кофеварка относится к Приборам
    • 299 Восходящее приведение
    • 300 Нисходящее приведение
    • 301 Нисходящее и восходящее приведение интерфейсов
    • 305 Модификаторы доступа
    • 306 Изменение видимости при помощи модификаторов доступа
    • 309 Классы, для которых недопустимо создание экземпляров
    • 310 Абстрактный класс. Перепутье между классом и интерфейсом
    • 312 Как уже было сказано, недопустимо создавать экземпляры некоторых классов
    • 313 Абстрактный метод не имеет тела
    • 318 Смертельным ромбом!
    • 321 Различные формы объекта
  • 339 8. Перечисления и коллекции. Большие объемы данных
    • 340 Категории данных не всегда можно сохранять в переменных типа string
    • 341 Перечисления
    • 342 Присвоим числам имена
    • 345 Создать колоду карт можно было при помощи массива
    • 346 Проблемы работы с массивами
    • 347 Коллекции
    • 348 Коллекции List
    • 351 Динамическое изменение размеров
    • 352 Обобщенные коллекции
    • 356 Инициализаторы коллекций
    • 357 Коллекция уток
    • 358 Сортировка элементов коллекции
    • 359 Интерфейс IComparable<Duck>
    • 360 Способы сортировки
    • 361 Создадим экземпляр объекта-компаратора
    • 362 Сложные схемы сравнения
    • 365 Перекрытие метода ToString()
    • 366 Обновим цикл foreach
    • 367 Интерфейс IEnumerable
    • 368 Восходящее приведение с помощью IEnumerable
    • 369 Создание перегруженных методов
    • 375 Словари
    • 389 Дополнительные типы коллекций
    • 390 Звенья следуют в порядке их поступления
    • 391 Звенья следуют в порядке, обратном порядку их поступления
  • 395 9. Чтение и запись файлов. Сохрани массив байтов и спаси мир
    • 396 Для чтения и записи данных в .NET используются потоки
    • 397 Различные потоки для различных данных
    • 398 Объект FileStream
    • 399 Трехшаговая процедура записи текста в файл
    • 403 Чтение и запись при помощи двух объектов
    • 407 Встроенные объекты для вызова стандартных окон диалога
    • 410 Встроенные классы File и Directory
    • 413 Открытие и сохранение файлов при помощи окон диалога
    • 415 Интерфейс IDisposable
    • 416 Операторы using как средство избежать системных ошибок
    • 422 Запись файлов сопровождается принятием решений
    • 423 Оператор switch
    • 424 Чтение и запись информации о картах в файл
    • 425 Чтение карт из файла
    • 429 Сериализации подвергается не только сам объект
    • 430 Сериализация позволяет читать и записывать объект целиком
    • 432 Сериализуем и десериализуем колоду карт
    • 435 .NET использует Unicode для хранения символов и текста
    • 436 Перемещение данных внутри массива байтов
    • 437 Класс BinaryWriter
    • 439 Чтение и запись сериализованных файлов вручную
    • 440 Найдите отличия и отредактируйте файлы
    • 441 Сложности работы с двоичными файлами
    • 442 Программа для создания дампа
    • 443 Достаточно StreamReader и StreamWriter
    • 444 Чтение байтов из потока
  • 449 10. Обработка исключений. Борьба с огнем надоедает
    • 450 Брайану нужны мобильные оправдания
    • 454 Объект Exception
    • 456 Код Брайана работает не так, как предполагалось
    • 458 Исключения наследуют от объекта Exception
    • 459 Работа с отладчиком
    • 460 Поиск ошибки в приложении Excuse Manager с помощью отладчика
    • 463 А код все равно не работает
    • 465 Ключевые слова try и catch
    • 466 Вызов сомнительного метода
    • 468 Результаты применения ключевых слов try/catch
    • 470 Ключевое слово finally
    • 475 Получения информации о проблеме
    • 476 Обработка исключений разных типов
    • 477 Один класс создает исключение, другой его обрабатывает
    • 478 Исключение OutOfHoney для пчел
    • 481 Оператор using как комбинация операторов try и finally
    • 482 Избегаем исключений при помощи интерфейса IDisposable
    • 484 Наихудший вариант блока catch
    • 485 Временные решения
    • 486 Краткие принципы обработки исключений
    • 489 Наконец Брайан получил свой отдых
  • 491 11. События и делегаты. Что делает код, когда вы на него не смотрите
    • 492 Хотите, что объекты научились думать сами?
    • 492 Как объекты узнают, что произошло?
    • 493 События
    • 494 Один объект инициирует событие, другой реагирует на него
    • 495 Обработка события
    • 496 Соединим все вместе
    • 500 Автоматическое создание обработчиков событий
    • 506 Обобщенный EventHandler
    • 507 Все формы используют события
    • 508 Несколько обработчиков одного события
    • 510 Связь между издателями и подписчиками
    • 511 Делегат замещает методы
    • 512 Делегаты в действии
    • 515 Объект может подписаться на событие
    • 516 Обратный вызов
    • 518 Обратный вызов как способ работы с делегатами
  • 525 12. Обзор и предварительные результаты. Знания, сила и построение приложений
    • 526 Вы прошли долгий путь
    • 527 Вы стали пчеловодом
    • 528 Архитектура симулятора улья
    • 529 Построение симулятора улья
    • 533 Жизнь и смерть цветка
    • 534 Класс Bee
    • 538 Программисты против бездомных пчел
    • 538 Для жизни улья нужен мед
    • 542 Построение класса Hive
    • 543 Метод Go() для улья
    • 544 Все готово для класса World
    • 545 Система, основанная на кадрах
    • 546 Код для класса World
    • 552 Поведение пчел
    • 554 Основная форма
    • 555 Получение статистики
    • 556 Таймеры
    • 564 Работа с группами пчел
    • 565 Коллекция коллекционирует... ДАННЫЕ
    • 567 LINQ упрощает работу с коллекциями и базами данных
    • 568 Тестирование (вторая попытка)
    • 569 Последние штрихи: Open и Save
  • 573 13. Элементы управления и графические фрагменты. Наводим красоту
    • 574 Элементы управления как средство взаимодействия с программой
    • 575 Элементы управления – это тоже объекты
    • 576 Анимируем симулятор улья
    • 578 Визуализатор
    • 579 Формы для визуализации
    • 583 Первый анимированный элемент управления
    • 584 Базовый класс PictureBox
    • 586 Кнопка добавления элемента BeeControl
    • 587 Удаление дочерних элементов управления
    • 588 Класс UserControl
    • 590 Поместим на форму анимированных пчел
    • 592 Формы Hive и Field
    • 593 Построение визуализатора
    • 596 Соединим основную форму с формами HiveForm и FieldForm
    • 600 Проблемы с производительностью
    • 602 Объект Graphics
    • 603 Объект Bitmap
    • 604 Пространство имен System.Drawing
    • 605 Знакомство с GDI+
    • 606 Рисуем на форме
    • 611 Решение проблемы с прозрачностью
    • 612 Событие Paint
    • 615 Перерисовка форм и элементов управления
    • 618 Двойная буферизация
    • 624 Вывод на печать
    • 625 Окно предварительного просмотра и окно диалога Print
  • 631 14. Капитан Великолепный. Смерть объекта
    • 638 Метод завершения объекта
    • 639 Когда запускает метод завершения объекта
    • 640 Явное и неявное высвобождение ресурсов
    • 642 Возможные проблемы
    • 643 Сериализуем объект в методе Dispose()
    • 647 Структура напоминает объект
    • 647 ...но объектом не является
    • 648 Значения копируются, а ссылки присваиваются
    • 649 Структуры – это значимые, а объекты – ссылочные типы
    • 651 Сравнение стека и кучи
    • 656 Необязательные параметры
    • 657 Типы, допускающие значение null
    • 658 Типы, допускающие значение null, увеличивают робастность программы
    • 661 Что осталось от Великолепного
    • 661 Сравнение
    • 662 Методы расширения
    • 664 Расширяем фундаментальный тип: string
  • 669 15. LINQ. Управляем данными
    • 670 Простой проект
    • 671 ...но сначала нужно собрать данные
    • 671 List<StarbuzzData>
    • 672 Сбор данных из разных источников
    • 673 Коллекции .NET уже настроены под LINQ
    • 674 Простой способ сделать запрос
    • 675 Сложные запросы
    • 678 Универсальность LINQ
    • 683 Группировка результатов запроса
    • 684 Сгруппируем результаты Джимми
    • 687 Предложение join
    • 687 List<Comic>
    • 687 LINQ Sequence
    • 687 List<Purchases>
    • 688 Джимми изрядно сэкономил
    • 689 LINQ Sequence
    • 689 List<StarbuzzData>
    • 690 Соединение LINQ с базой данных SQL
    • 694 Соединим Starbuzz и Objectville

Инструкция как скачать книгу Э. Стиллмен, Дж. Грин: Изучаем C# в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
Изучаем C#
Рейтинг книги:
2 голоса
1032

Поиск книг:




При поиске учитываются только слова, длина которых больше 3-х символов.

Статистика: