Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Books / 4_C#_2008_Самоучитель_(Гросс-2008)

.pdf
Скачиваний:
116
Добавлен:
24.03.2015
Размер:
6.72 Mб
Скачать

Кристиан Гросс

Санкт-Петербург

«БХВ-Петербург»

2009

УДК 681.3.06 ББК 32.973.26-018.2

Г88

Гросс К.

Г88 С# 2008: Пер. с англ. — СПб.: БХВ-Петербург, 2009. — 576 е.: ил. — (Самоучитель) ISBN 978-5-9775-0287-0

Книга посвящена основам программирования на языке С# 2008. Материал излагается последовательно на примере решения различных типичных проблем, с которыми сталкиваются программисты. Описаны типы данных языка С#, их достоинства, недостатки и особенности применения. Рассмотрены операторы языка, основы объекгпо-ориептированного, компонентно-ориентированного и функционального программирования. Показаны особенности обработки строк и исключений, а также мноюпогачная обработка информации. Описаны принципы хранения данных, конфигурационные файлы приложения, динамическое выполнение кода.

Рассмотрен интерфейс среды разработки Visual С# Express Edition 2008. Материал сопровождается многочисленными примерами разработки приложений: калькулятор, переводчик, простая система искусственного интеллекта, обмен валют, вычисления налогов и др.

Для программистов

УДК 681.3.06 ББК 32.973.26-018.2

Группа подготовки издания:

Главный редактор

Екатерина Кондукова

Зам. главного редактора

Игорь

Шишигин

Зав. редакцией

Гоигорий

Добин

Перевод с английского

Сергея

 

Таранушенко

Редактор

Анна

Кузьмина

Компьютерная верстка

Натальи

Караваевой

Корректор

Виктория

Пиотровская

Оформление обложки

Елены

Беляевой

Зав. производством

Николай

Тверских

Original English language edition published by Apress 2855 Telegraph Avenue, #600, Berkeley, CA 94705 USA. Copyright © 2008 by Apress L.P. Russian edition copyright ® 2008 by BHV — St. Petersburg. All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher.

Авторизованный перевод английской редакции, выпущенной Apress 2855 Telegraph Avenue. #600, Berkeley, CA 94705 USA. Copyright © 2008 by Apress L.P. Перевод на русский язык "БХВ-Петербург", © 2008. Все права защищены. Никакая часть настоящей книги не может быть воспроизведена или передана в какой бы то ни было форме и какими бы то ни было средствами, будь то электронные или механические, включая фотокопирование и запись иа магнитный носитель, а также через другие носители и информационные системы, если на то нет письменного разрешения собственника прав и издательства.

Лицензия ИД № 02429 от 24.07.00. Подписано в печать 01.09.08. Формат 70ХЮ0716. Печать офсетная. Усл. печ. л. 46,44.

Тираж 2000 экз. Заказ № 555 "БХВ-Петербург", 194354, Санкт-Петербург, ул. Есенина, 5Б.

Санитарно-эпидемиологическое заключение на продукцию № 77.99.60.953.Д.003650.04.08 от 14.04.2008 г. выдано Федеральной службой

по надзору в сфере защиты прав потребителей и благополучия человека.

Отпечатано с готовых диапозитивов в ГУП "Типогрвфия "Нвука"

199034, Санкт-Петербург, 9 линия, 12

ISBN 978-1-59059-869-5 (англ.) ISBN 978-5-9775-0287-0 (рус.)

©2008 by Apress L P.

©2007 by Christian Gross

©Перевод на русский язык 'БХВ-Петербург', 2008

Пища для ума при написании программного обеспечения:

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

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

Дуглас Адаме, в основном безвредный

Об авторе

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

Но как насчет биографии автора, Кристиана Гросса? Она довольно проста: я парень, который провел уйму времени в кресле, отлаживая и разбирая по частям код. В действительности, мне по настоя-

щему нравится этот бизнес, называющийся разработка программного обеспечения. Я полюбил его с тех пор, когда я впервые научился подсматривать и вставлять содержимое байтов. Я написал несколько книг, среди них "Ajax and REST Recipes: A Problem-Solution Approach" ("Рецепты для Ajax и REST: Подход проблемарешение"), "Foundations of Object-Oriented Programming Using .NET 2.0 Patterns" ("Основы объектно-ориентированного программирования с использованием шаблонов .NET 2.0") и "A Programmer's Introduction to Windows DNA" ("Введения для программистов в Windows DNA").

В настоящее время я получаю удовольствие от написания кода для .NET и экспериментирования с этой увлекательной средой. .NET вызывает у меня чувства, подобные чувствам ребенка, открывающего новогодний подарок: какой подарок, в принципе известно, но полной уверенности все-таки нет. А подарки от .NET — это вам не какие-то носки или шарфик от любимой тетушки. Это один непрекращающийся восторг!

О техническом рецензенте

Кристиан Кенйерес (Christian Kenyeres), главный разработчик в компании Collaborative Consulting, является профессионалом новаторских технологий, имеющий свыше 15 лет обширного опыта работы в области информационных технологий. Он предоставлял свои услуги разработчика программного обеспечения для предприятий многочисленным клиентам высокого уровня и может похвастаться обширными техническими и деловыми знаниями.

До работы в компании Collaborative Consulting Кристиан предоставлял услуги консультирования различным компаниям, включающим Compaq, EMC, Fidelity Investments, Liberty Mutual Insurance и John Hancock. Он получил дипломы бакалавра Массачусетского университета и магистра в вычислительной технике Бостонского университета.

Введение

Первой книгой по программированию, которую я прочитал, была книга Чарльза Петцольда (Charles Petzold) "Программирование Windows 3.0". Это было приблизительно в то время, когда операционная система Microsoft Windows 3.0 (около 1992 г.) раз и навсегда показала игрокам в области информационных технологий, что у компании Microsoft будет успешное будущее. В те времена написание кода под Windows было сложно по многим причинам: отсутствие документации, 16-битовая архитектура, а также необходимость покупать компилятор отдельно от набора SDK (Software Development Kit, набор разработчика программного обеспечения). Книга Чарльза связала все вместе и решила проблему написания программ под Windows.

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

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

Это не справочник по всем возможностям языка С#, и в ней не рассматриваются его экзотические возможности. Основное внимание в ней уделяется тем возможностям языка С#, которые вам придется использовать каждый день. Но это не означает, что вы не сможете ознакомиться с определенными конструктивами языка, т. к. я охватил все основные возможности.

Чтобы получить наиболее полную пользу от этой книги, я советую делать упражнения, приведенные в конце каждой главы. Ответы на упражнения можно посмотреть на Web-сайте издательства Apress (http://www.apress.com). Но вы можете мухлевать и не делать упражнений, но я бы не советовал этого.

8

Введение

Если вы начинающий программист, который ничего не знает о С#, внимательно прочитаете эту книгу и выполните все упражнения в ней, то я почти полностью уверен, что к концу книги вы будете владеть солидными знаниями программирования на С#. Если это звучит, как будто бы я много обещаю, что ж, так оно и есть. Текст глав предназначен ознакомить вас с определенными возможностями языка С# и их применениями. А упражнения к главам предназначены проверить, что вы действительно поняли материал, изложенный в каждой главе.

Упражнения трудные; за пять минут вы их не решите. Между прочим, когда я делал эти упражнения, то у меня ни их выполнение ушло пять рабочих дней!

Если у вас возникнут вопросы, типа: "Чего же мы хотим добиться в этом упражнении?", то можно отправить мне вопросы по электронной почте по адресу atchristianhgross @ gmail.com.

Спасибо за внимание. Желаю вам успехов.

Глава 1

На старт, внимание, марш!

Эта книга о языке программирования С# и о том, как стать опытным программистом на этом языке. Прочитав ее от корки до корки, вы не станете гениальным программистом, но получите знания, которые помогут вам в написании надежных, стабильных и сопровождаемых приложений.

В этой главе мы начнем процесс получения этих знаний и навыков с приобретения инструментов для разработки приложений на языке С# и с испытания возможностей этих инструментов. По ходу дела мы также создадим несколько приложений на языке С#.

Скачивание и установка инструментов

Начав работать с С# 3.0, вы, наверное, горите желанием сразу же написать какуюлибо программу на этом языке. В этом отношении .NET позволяет вам удовлетворить ваше желание— вы можете начать писать работающий код срап же после установки или набора разработчика программного обеспечения .NET (ЛЕТ SDK) или интегрированной среды разработки (IDE) Visual Studio. Поэтому первым, критическим, шагом в вашей работе с С# 3.0 является скачивание и установка среды разработки.

ПРИМЕЧАНИЕ

Для начинающих, да и не только для начинающих, разобраться с номерами версий программ, описаниями продуктов и возможностями технологий может быть нелегкой задачей. На основе своего свыше десятилетнего опыта работы с технологиями корпорации Microsoft я могу утверждать, что присваивание имен технологиям и продуктам никогда не было сильной стороной Microsoft. Сами технологии и продукты были (по большей части) замечательными, но их классификация и идентификация таковыми являлись далеко не всегда. В этой книге рассматривается язык программирования С# 3.0, который применяется для написания приложений для .NET Framework. Для С# 3.0 применяются версии 3.0 и 3.5 .NET Framework. .NET 3.0 предоставляет основные возможности, a .NET 3.5 расширяет эти возможности.

Для написания примеров, рассматриваемых в этой книге, применяется Visual С# 2008 Express Edition, т. к. эта среда разработки является бесплатной и предоставляет все необходимые функциональности для того, чтобы начать работать с С# 3.0.

10

Глава 10

Другие среды разработки Express Edition, предоставляемые Microsoft, предназначены для работы с другими языками — Visual Basic и С++. А функциональность Visual Web Developer Express слишком ограниченная для наших целей.

Корпорация Microsoft также предоставляет полные версии среды разработки Visual Studio, такие как выпуски Standard, Professional и Team. Каждый из этих выпусков имеет свои возможности и свою цену. Дополнительную информацию см. на Web-сайте корпорации Microsoft в разделе для Visual Studio по адресу http://msdn2.microsoft.com/en-us/vstudio/default.aspx. Если у вас уже есть Visual Studio 2008 Professional, то для создания примеров из этой книги вы можете пользоваться данной средой. Она позволяет делать все, что можно делать с Visual С# Express, и имеет много других функциональностей.

ПРИМЕЧАНИЕ

Лично я пользуюсь средой Visual Studio Standard или Professional совместно с другими инструментами, такими как X-develop и JustCode!, предоставляемыми компанией Omnicore (http://www.omnicore.com), TestDriven.NET (http://www.testdriven.net/) и NUnit

(http://www.nunit.org). Средства, входящие в Visual Studio, очень хороши, но имеются и другие хорошие инструменты. Разработчик должен знать, какими инструментами лучше всего пользоваться.

Размер установочного пакета Visual С# Express довольно большой, поэтому если у вас нет высокоскоростного Интернета, я бы посоветовал устанавливать среду разработки с CD-ROM.

Скачивание Visual С# Express

Далее приводится процедура для скачивания установочного пакета Visual С# Express с Web-сайта Microsoft. К тому времени, когда вы будете читать эту книгу, процедура может быть несколько иной, но в основном она будет достаточно похожей на описанную, чтобы вы смогли с легкостью найти необходимую страницу

искачать с нее установочный пакет.

1.Откройте страницу http://msdn.microsoft.com/vstudio/express/. 2. Выберите на ней ссылку Visual Studio 2008 Express Editions.

3. Выберите Windows Development1 (т.к. пространство этой книги ограничено,

в ней мы будем рассматривать проекты только этого типа).

4.Нажмите ссылку Visual Studio Express Download.

5.Откроется страница со списком сред разработки Visual Studio Express (рис. 1.1). Нажмите ссылку Visual С# 2008 Express Edition.

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

' Разработка программного обеспечения под Windows. — Пер.