C# 2008 для "чайников"

Чак Сфер, Стефан Рэнди Дэвис

Узнайте, как создать консольное приложение и что такое делегаты, события и интерфейсы. C# - мощный язык программирования, который стал любимым инструментом программистов, работающих с Visual Studio 2008, и эта книга поможет вам быстро и безболезненно освоить новейшую его версию. Вы научитесь создавать консольные приложения для Windows Vista и использовать LINQ для упрощения кода работы с базами данных, а также узнаете, на что способен класс HashSet, и многое другое.

Эта книга поможет вам:

  • Создать шаблон консольного приложения.
  • Работать с циклами и условными переходами.
  • Разобраться в синтаксисе коллекций.
  • Использовать интерфейсы и объектно-ориентированные концепции.
  • Применять делегаты и события.

Издательство: Вильямс, 2009 г.

ISBN 978-5-8459-1468-2, 978-0-470-19109-5

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

Содержание книги «C# 2008 для "чайников"»:

  • 21 Введение
  • 29 ЧАСТЬ I. НАЧНЕМ, ПОЖАЛУЙ…
  • 31 Глава 1. Создание вашего первого консольного приложения на C#
    • 31 Введение в машинные языки, C# и платформу .NET
      • 31 Что такое программа
      • 32 Что такое C#
      • 33 Что такое .NET
      • 34 Что такое Visual Studio 2008 и Visual C#
    • 34 Создание первого консольного приложения
      • 34 Создание исходной программы
      • 37 Пробная поездка
    • 37 Создание реального консольного приложения
    • 39 Изучение консольного приложения
      • 39 Схема программы
      • 39 Комментарии
      • 40 Тело программы
    • 41 Использование Toolbox
      • 41 Сохранение кода в Toolbox
      • 42 Использование кода из Toolbox
  • 43 ЧАСТЬ II. ОСНОВЫ ПРОГРАММИРОВАНИЯ В C#
  • 45 Глава 2. Объявление переменных-значений
    • 45 Объявление переменной
      • 46 Что такое int
      • 47 Правила объявления переменных
      • 47 Вариации на тему int
      • 48 Новый тип BigInteger
    • 49 Представление дробных чисел
    • 49 Работа с числами с плавающей точкой
      • 50 Объявление переменной с плавающей точкой
      • 51 Более точное преобразование температур
      • 51 Ограничения переменных с плавающей точкой
    • 52 Десятичные числа — комбинация целых и чисел с плавающей точкой
      • 52 Объявление переменных типа decimal
      • 53 Сравнение десятичных и целых чисел, а также чисел с плавающей точкой
    • 53 Логичен ли логический тип
    • 54 Символьные типы
      • 54 Тип char
      • 54 Специальные символы
      • 54 Тип string
    • 55 Что такое тип-значение
    • 56 Сравнение string и char
    • 57 Високосный ли этот год?
    • 58 Объявление числовых констант
    • 59 Преобразование типов
    • 60 Новая возможность — выведение типа данных
  • 63 Глава 3. Операторы
    • 63 Арифметика
      • 63 Простейшие операторы
      • 64 Порядок выполнения операторов
      • 65 Оператор присваивания
      • 65 Оператор инкремента
    • 66 Логично ли логическое сравнение
      • 67 Сравнение чисел с плавающей точкой
      • 68 Составные логические операторы
    • 69 Тип выражения
      • 69 Вычисление типа операции
      • 71 Типы при присваивании
  • 73 Глава 4. Управление потоком выполнения
    • 74 Управление потоком выполнения
      • 74 Оператор if
      • 77 Инструкция else
      • 78 Как избежать else
      • 78 Вложенные операторы if
      • 81 Конструкция switch
    • 83 Циклы
      • 83 Цикл while
      • 88 Цикл do…while
      • 88 Операторы break и continue
      • 89 Цикл без счетчика
      • 93 Правила области видимости
    • 93 Цикл for
      • 94 Пример
      • 94 Зачем нужны разные циклы
    • 95 Вложенные циклы
    • 96 Оператор goto
  • 99 Глава 5. Коллекционирование
    • 99 Массивы C#
      • 99 Зачем нужны массивы
      • 100 Массив фиксированного размера
      • 102 Массив переменного размера
    • 105 Конструкция foreach
    • 106 Сортировка массива объектов
    • 109 Использование var для массивов
    • 110 Коллекции C#
    • 111 Синтаксис коллекций
      • 111 Классы коллекций C#
      • 111 Понятие <T>
      • 112 Обобщенные коллекции
    • 112 Использование списков
    • 115 Использование словарей
    • 117 Новинка: инициализаторы массивов и коллекций
      • 117 Инициализация массивов
      • 117 Инициализация коллекций
    • 118 Новинка: использование множеств
    • 122 Не используйте старые коллекции
  • 123 Глава 6. Работа со строками в C#
    • 124 Неизменяемость строк
    • 125 Основные операции над строками
    • 126 Сравнение строк
      • 126 Метод Compare()
      • 129 Сравнение без учета регистра
    • 129 Изменение регистра
      • 130 Отличие строк в разных регистрах
      • 130 Преобразование символов строки в символы верхнего или нижнего регистра
    • 131 Цикл по строке
    • 131 Поиск в строках
      • 132 Как искать
      • 132 Пуста ли строка
    • 132 Получение введенной пользователем информации
      • 133 Удаление пробельных символов
      • 133 Анализ числового ввода
      • 136 Обработка последовательности чисел
      • 137 Объединение массива строк в одну строку
    • 138 Управление выводом программы
      • 138 Использование методов Trim()и Pad()
      • 140 Использование функции конкатенации
      • 142 Использование функции Split()
    • 142 Форматирование строки
    • 146 StringBuilder: эффективная работа со строками
  • 149 ЧАСТЬ III. ИСПОЛЬЗОВАНИЕ ОБЪЕКТОВ
  • 151 Глава 7. Немного о классах
    • 151 Классы и объекты
      • 152 Определение класса
      • 153 Что такое объект
    • 153 Доступ к членам объекта
    • 154 Пример объектно-основанной программы
    • 156 Отличие между объектами
      • 156 Ссылки
    • 158 Классы, содержащие классы
    • 159 Статические члены класса
    • 160 Определение константных членов-данных
  • 161 Глава 8. Методы методов
    • 161 Определение и использование метода
    • 162 Использование методов в ваших программах
    • 169 Аргументы метода
      • 169 Передача аргументов методу
      • 170 Передача методу нескольких аргументов
      • 171 Соответствие определений аргументов их использованию
      • 172 Перегрузка метода
      • 173 Реализация аргументов по умолчанию
      • 175 Передача в метод типов-значений
    • 180 Возврат значений из метода
      • 181 Возврат значения оператором return
      • 182 Возврат значения посредством передачи по ссылке
      • 182 Когда какой способ передачи использовать
      • 183 Определение метода без возвращаемого значения
  • 187 Глава 9. Пару слов об этом
    • 187 Передача объекта в метод
    • 189 Определение методов
      • 189 Определение статического метода
      • 190 Определение метода экземпляра
      • 192 Полное имя метода
    • 193 Обращение к текущему объекту
      • 194 Ключевое слово this
      • 195 Когда this используется явно
      • 197 Что делать при отсутствии this
    • 199 Новинка: методы расширения
  • 203 Глава 10. Что такое объектно-ориентированное программирование
    • 203 Объектно-ориентированная концепция № 1: абстракция
      • 204 Приготовление блюд с помощью функций
      • 204 Приготовление «объектно-ориентированных» блюд
    • 204 Объектно-ориентированная концепция № 2: классификация
    • 205 Зачем нужна классификация
    • 206 Объектно-ориентированная концепция № 3: удобный интерфейс
    • 206 Объектно-ориентированная концепция № 4: управление доступом
    • 207 Поддержка объектно-ориентированных концепций в C#
  • 209 ЧАСТЬ IV. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
  • 211 Глава 11. Класс — каждый сам за себя
    • 211 Ограничение доступа к членам класса
      • 212 Пример программы с использованием открытых членов
      • 215 Прочие уровни безопасности
    • 215 Зачем нужно управление доступом
      • 216 Методы доступа
      • 217 Пример управления доступом
    • 222 Определение свойств класса
      • 224 Новинка: дайте компилятору написать свойства за вас
      • 225 Методы и уровни доступа
    • 225 Конструирование объектов посредством конструкторов
    • 225 Конструкторы, предоставляемые C#
    • 227 Конструктор по умолчанию
      • 228 Создание объектов
      • 230 Выполнение конструктора в отладчике
      • 233 Непосредственная инициализация объекта
      • 233 Конструирование с инициализаторами
      • 234 Новинка: инициализация объекта без конструктора
    • 235 Перегрузка конструкторов
    • 238 Устранение дублирования конструкторов
    • 242 Фокусы с объектами
  • 243 Глава 12. Наследование
    • 243 Наследование класса
    • 245 Зачем нужно наследование
    • 246 Более сложный пример наследования
    • 249 ЯВЛЯЕТСЯ или СОДЕРЖИТ
      • 249 Отношение ЯВЛЯЕТСЯ
      • 250 Доступ к BankAccount через содержание
      • 251 Отношение СОДЕРЖИТ
    • 251 Когда использовать отношение ЯВЛЯЕТСЯ, и когда — СОДЕРЖИТ
    • 252 Поддержка наследования в C#
      • 252 Изменение класса
      • 253 Неверное преобразование времени выполнения
      • 253 Ключевые слова is и as
    • 255 Класс object
    • 256 Наследование и конструктор
      • 256 Вызов конструктора по умолчанию базового класса
      • 257 Передача аргументов конструктору базового класса
      • 259 Указание конкретного конструктора базового класса
    • 260 Обновленный класс BankAccount
  • 265 Глава 13. Полиморфизм
    • 265 Перегрузка унаследованного метода
      • 266 Простейший случай перегрузки метода
      • 266 Различные классы, различные методы
      • 267 Сокрытие метода базового класса
      • 271 Вызов методов базового класса
    • 273 Полиморфизм
      • 274 Что неверно в стратегии использования объявленного типа
      • 275 Использование is для полиморфного доступа к скрытому методу
      • 276 Объявление метода виртуальным
      • 279 Трюк «один за всех, все за одного»
    • 279 Визитная карточка класса: метод ToString()
    • 279 Абстракционизм в C#
      • 280 Разложение классов
      • 284 Голая концепция, выражаемая абстрактным классом
      • 284 Как использовать абстрактные классы
      • 286 Создание абстрактных объектов невозможно
    • 287 Опечатывание класса
  • 289 Глава 14. Интерфейсы
    • 289 Что значит МОЖЕТ_ИСПОЛЬЗОВАТЬСЯ_КАК
    • 290 Что такое интерфейс
      • 291 Реализация интерфейса
      • 292 Именование интерфейсов
      • 292 Зачем в C# включены интерфейсы
      • 292 Наследование и реализация интерфейса
      • 293 Преимущества интерфейсов
    • 294 Использование интерфейсов
      • 294 Тип, возвращаемый методом
      • 294 Базовый тип массива или коллекции
      • 295 Более общий тип ссылки
    • 295 Использование предопределенных типов интерфейсов C#
    • 296 Пример программы, использующей отношение МОЖЕТ_ИСПОЛЬЗОВАТЬСЯ_КАК
      • 296 Создание собственного интерфейса
      • 297 Реализация интерфейса IComparable<T>
      • 298 Сборка воедино
    • 302 Унификация иерархий классов
    • 305 Что скрыто за интерфейсом
    • 307 Наследование интерфейсов
    • 308 Использование интерфейсов для внесения изменений в объектно-ориентированные программы
      • 309 Гибкие зависимости через интерфейсы
      • 309 Абстрактный или конкретный? Когда следует использовать абстрактный класс, и когда — интерфейс
      • 310 Осуществление отношения СОДЕРЖИТ с помощью интерфейсов
      • 311 Шаблон проектирования Strategy
      • 312 Чем полезны шаблоны
  • 315 ЧАСТЬ V. C# 3.0
  • 317 Глава 15. Делегирование событий
    • 317 Звонок домой — проблема обратного вызова
    • 318 Что такое делегат
    • 320 Примеры передачи кода
      • 320 Очень простой первый пример
    • 322 Пример из реального мира
      • 322 Обзор большего примера
      • 322 Создание приложения
      • 324 Знакомимся с кодом
      • 326 Жизненный цикл делегата
    • 328 Анонимные методы
    • 329 События C#
      • 329 Шаблон проектирования Observer
      • 330 Что такое событие. Публикация и подписка
      • 330 Как издатель оповещает о своих событиях
      • 331 Как подписаться на событие
      • 331 Как опубликовать событие
      • 332 Как передать обработчику события дополнительную информацию
      • 333 Рекомендованный способ генерации событий
      • 334 Как наблюдатели «обрабатывают» событие
  • 335 Глава 16. Лямбда-выражения
    • 335 Коллекции и задача «для каждого»
    • 335 Новинка: применение лямбда-выражений
      • 336 Способ «для каждого» в C#
      • 337 Заготовка: данные для примеров
      • 337 Несколько примеров с методом Find()
      • 339 Выполнение действий: примеры с ForEach()
      • 342 Лямбда-выражение на основе пользовательского делегата
      • 343 Резюмируя примеры
      • 343 Синтаксис лямбда-выражений
    • 345 Применение лямбда-выражений для произвольного делегата
  • 347 Глава 17. Выражения запросов
    • 347 Обзор возможностей C# 3.0
    • 348 Что же такое запрос
      • 349 Почему важны запросы, интегрированные в язык
      • 350 Общий вид запроса C#
      • 350 Более пристальный взгляд на LINQ
    • 351 Запросы в C# 3.0
      • 352 Три самых важных оператора запроса
      • 354 Что означает отложенное выполнение запроса
      • 355 Немедленное выполнение запроса
    • 355 Что могут запросы
      • 356 Фильтрование
      • 356 Пример 1: кто из заказчиков живет в Колорадо?
    • 358 Выбор и группирование
      • 358 Пример 2: последовательность чисел, увеличенных на 2
      • 359 Пример 3: имя и телефонный номер каждого заказчика
      • 359 Использование анонимных типов
      • 361 Пример 4: преобразование чисел в слова
      • 362 Пример 5: группирование имен по их первой букве
      • 364 Пример 6: вывод некоторых групп
      • 365 Пример 7: группирование товаров по категориям
    • 366 Сортировка
      • 367 Пример 8: упорядочение групп из примеров 5 и 6
      • 367 Пример 9: сортировка в группах
      • 368 Пример 10: еще одна двухуровневая сортировка
      • 368 Пример 11: сортировка в убывающем порядке
    • 369 Метод запроса с методами
      • 370 Пример 12: написание запросов с методами вместо ключевых слов
      • 370 О поездах для новичков
      • 372 Передышка для «стариков» закончена
      • 372 Обобщенные методы
      • 372 Что внутри Where()
      • 373 Пример 13: имя и телефонный номер каждого заказчика
    • 374 Подсчет, суммирование, усреднение и прочее
      • 374 Пример 14: подсчет типов товара на складе
      • 374 Пример 15: суммирование элементов массива
      • 375 Пример 16: суммарная стоимость заказа
      • 375 Пример 17: вычисление факториала 9
    • 376 Работа с объектами как с коллекциями
  • 377 ЧАСТЬ VI. ВЕЛИКОЛЕПНЫЕ ДЕСЯТКИ
  • 379 Глава 18. Десять наиболее распространенных ошибок компиляции
    • 379 The name ‘memberName’ does not exist in the class or namespace ‘className’
    • 381 Cannot implicitly convert type ‘x’ into ‘y’
    • 383 ‘className.memberName’ is inaccessible due to its protection level
    • 384 Use of unassigned local variable ‘n’
    • 384 Unable to copy the file ‘programName.exe’ to ‘programName.exe’. The process cannot
    • 385 ‘subclassName.methodName’ hides inherited member ‘baseclassName.methodName’. Use the new keyword if hiding was intended
    • 386 ‘subclassName’ : cannot inherit from sealed class ‘baseclassName’
    • 386 ‘className’ does not implement interface member ‘methodName’
    • 387 ‘methodName’ : not all code paths return a value
    • 388 ] expected
  • 389 ЧАСТЬ VII. ДОПОЛНИТЕЛЬНЫЕ ГЛАВЫ
  • 391 Глава 19. Пространства имен и библиотеки
    • 391 Разделение одной программы на несколько исходных файлов
    • 393 Разделение единой программы на сборки
      • 393 Выполнимый файл или библиотека
      • 393 Сборки
      • 394 Выполнимые файлы
      • 394 Библиотеки классов
    • 395 Объединение классов в библиотеки
      • 395 Создание проекта библиотеки классов
      • 396 Создание автономной библиотеки классов
      • 396 Добавление второго проекта к существующему решению
      • 398 Создание классов для библиотеки
      • 398 Использование драйвера для тестирования библиотеки
      • 399 Использование библиотеки классов в программе
    • 400 Дополнительные ключевые слова для управления доступом
      • 400 internal: строим глазки ЦРУ
      • 402 protected: поделимся с подклассами
      • 404 protected internal: более изощренная защита
    • 405 Размещение классов в пространствах имен
      • 406 Объявление пространств имен
      • 408 Пространства имен и доступ
      • 409 Использование полностью квалифицированных имен
      • 410 Директива using
      • 411 Пример использования полностью квалифицированных имен
  • 415 Глава 20. Эти исключительные исключения
    • 415 Старый способ обработки ошибок
      • 417 Возврат индикатора ошибки
      • 421 Чем плохи коды ошибок
    • 422 Использование механизма исключений для сообщения об ошибках
      • 424 О try-блоках
      • 424 О cacth-блоках
      • 424 О finally-блоках
      • 425 Что происходит при генерации исключения
    • 427 Генерация исключений
    • 427 Для чего нужны исключения
    • 427 Пример
      • 429 Что делает этот пример «исключительным»
      • 430 Трассировка стека
    • 431 Использование нескольких catch-блоков
    • 433 Планирование стратегии обработки ошибок
      • 433 Вопросы, помогающие при планировании
      • 434 Советы по написанию кода с хорошей обработкой ошибок
      • 436 Анализ возможных исключений метода
      • 438 Как выяснить, какие исключения генерируются теми или иными методами
    • 438 Последний шанс перехвата исключения
  • 441 Глава 21. Рыбалка в потоке
    • 441 Где водится рыба: файловые потоки
      • 441 Потоки
      • 442 Читатели и писатели
    • 443 Использование StreamWriter
      • 444 Пример использования потока
      • 446 Как это работает
      • 449 Наконец-то мы пишем!
      • 450 Использование конструкции using
    • 453 Использование StreamReader
    • 457 Еще о читателях и писателях
    • 458 Прочие виды потоков
  • 461 Глава 22. Значения и ссылки
    • 461 Структуры C# и их отличия от классов
      • 462 Структуры C#
      • 463 Конструктор структуры
      • 464 Методы структур
      • 465 Пример применения структуры
      • 468 Когда использовать структуры, а когда — классы
      • 468 Предопределенные типы структур
    • 469 Перечисления — группировка именованных констант
    • 469 Унификация системы типов
      • 472 Упаковка типов-значений
      • 472 Как избежать упаковки и распаковки
  • 475 Глава 23. Использование интерфейса Visual Studio
    • 475 Окна, окна, окна…
    • 476 Настройка расположения окон
      • 476 Состояния окон
      • 478 Сокрытие окон
      • 479 Перестановка окон
      • 481 Наложение окон
    • 482 Дополнительные возможности Visual Studio
      • 482 Просмотр диаграммы классов
      • 482 Рефакторинг кода
      • 484 Стандартные заготовки кода
      • 484 Автоматизация Visual Studio при помощи макросов
    • 485 Работа с Solution Explorer
      • 486 Как упростить жизнь с помощью проектов и решений
      • 487 Отображение проекта
      • 490 Навигация по исходному тексту
      • 491 Добавление класса
      • 492 Завершение демонстрационной программы
      • 495 Преобразование классов в программу
    • 496 Помогите мне!
    • 496 Отладка
      • 497 Жучки в программе: а дустом не пробовали?
      • 498 Пошаговая отладка
      • 502 Главное — вовремя остановиться
      • 504 Стек вызовов
      • 508 Я сделал это!
  • 509 Глава 24. Обобщенность
    • 509 Обобщенность в C#
      • 509 Обобщенные классы безопасны
      • 510 Обобщенные классы эффективны
    • 511 Создание собственного обобщенного класса
      • 511 Очередь с приоритетами
      • 516 Распаковка пакета
      • 517 Метод Main()
      • 518 Написание обобщенного кода
      • 519 Обобщенная очередь с приоритетами
      • 521 Использование простого необобщенного класса фабрики
      • 523 Незавершенные дела
    • 525 Обобщенные методы
      • 527 Обобщенные методы в необобщенных классах
      • 528 Обобщенные методы в обобщенных классах
      • 528 Ограничения для обобщенного метода
    • 529 Обобщенные интерфейсы
      • 529 Объявление обобщенного интерфейса
      • 529 Написание класса, реализующего обобщенный интерфейс
      • 530 Интерфейсы на примере
    • 533 Обобщенное делегирование
  • 537 Глава 25. Работа с коллекциями
    • 537 Обход каталога файлов
    • 543 Написание собственного класса коллекции: связанный список
      • 544 Пример связанного списка
      • 553 Зачем нужен связанный список
    • 553 Обход коллекций: итераторы
      • 554 Доступ к коллекции: общая задача
      • 555 Использование foreach
    • 557 Обращение к коллекциям как к массивам: индексаторы
      • 557 Формат индексатора
      • 557 Пример программы с использованием индексатора
    • 561 Блок итератора
      • 566 Итерация месяцев
      • 567 Что такое коллекция
      • 568 Синтаксис итератора
      • 569 Блоки итераторов произвольного вида и размера
      • 572 Где надо размещать итераторы
  • 581 Предметный указатель

Инструкция как скачать книгу Чак Сфер, Стефан Рэнди Дэвис: C# 2008 для "чайников" в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
C# 2008 для "чайников"
Рейтинг книги:
3 голоса
1705

Поиск книг:




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

Статистика: