The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Книга посвящена программированию на языке C# для платформы Microsoft .NET, начиная с основ языка и разработки программ для работы в режиме командной строки и заканчивая созданием современных веб-приложений. Материал сопровождается большим количеством практических примеров. Подробно описывается логика выполнения каждого участка программы. Уделено внимание вопросам повторного использования кода. В пятом издании примеры переписаны с учетом современной платформы .NET 5, а вместо прикладных приложений упор делается на веб–приложения. На сайте издательства находятся коды программ, дополнительная справочная информация и копия базы данных для выполнения примеров из книги.

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by BHV.RU Publishing House, 2021-09-04 00:47:16

Библия C#. 5-е изд.

Книга посвящена программированию на языке C# для платформы Microsoft .NET, начиная с основ языка и разработки программ для работы в режиме командной строки и заканчивая созданием современных веб-приложений. Материал сопровождается большим количеством практических примеров. Подробно описывается логика выполнения каждого участка программы. Уделено внимание вопросам повторного использования кода. В пятом издании примеры переписаны с учетом современной платформы .NET 5, а вместо прикладных приложений упор делается на веб–приложения. На сайте издательства находятся коды программ, дополнительная справочная информация и копия базы данных для выполнения примеров из книги.

Keywords: C#

Основы C# 49

разделено точками с запятой. Именно по ним компилятор будет отделять отдель-
ные операции.
Несмотря на то, что этот код вполне корректен, никогда не пишите так. Если строка
кода слишком большая, то ее можно разбить на части, но писать в одной строке два
действия не нужно. Строка получится перегруженной информацией и сложной для
чтения.

Для объявления переменной i мы использовали псевдоним int. Полное название
типа — System.Int32, и никто не запрещает использовать его:

System.Int32 i;
i = 10;
Console.WriteLine(i);

Результат будет тем же самым. Но большинству программистов просто лень писать
такое длинное определение типа. Я думаю, что вы тоже будете лениться, ведь три
буквы int намного проще написать, чем длинное определение System.Int32.

ВНИМАНИЕ!
Язык С# чувствителен к регистру букв. Это значит, что переменная i и перемен-
ная I — совершенно разные переменные. То же самое и с операторами языка — если
тип называется int, то нельзя его писать большими буквами INT или с большой буквы
Int. Вы должны четко соблюдать регистр букв, иначе компилятор выдаст ошибку.

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

int i, j;

Здесь объявляются две целочисленные переменные с именами i и j.
Теперь посмотрим, как определяются строки. Следующий пример объявляет стро-
ку s, присваивает ей значение и выводит содержимое на экран:

System.String s;
s = "Hello";
Console.WriteLine(s);

Объявление строк происходит так же, как и целочисленных переменных. Разница
в присвоении значения. Значение строки должно быть заключено в двойные кавыч-
ки, которые указывают на то, что это текст.
Присваивать значение переменной можно сразу же во время объявления, например:

int i = 10;

В этом примере объявляется переменная и тут же ей назначается значение.
Ставить пробелы вокруг знака равенства не обязательно, и строку можно было на-
писать так:

int i=10;

Но этот код, опять же, выглядит не слишком красиво. Помните, что красота — это
не только баловство, это еще и удобство. Кто-то очень умный как-то сказал, что мы

50 Глава 2

пишем код только один раз, а читаем потом мнократно. Возможно я сейчас привел
это высказыванием не дословно, но смысл точно был таким.

Из личного опыта могу сказать, что чаще всего мне приходится работать с целыми
числами и типом данных int. Но я также очень часто пишу экономические и бух-
галтерские программы, а вот тут уже нужна более высокая точность данных, где
участвует запятая, — используются вещественные или дробные числа. Для хране-
ния дробных чисел в .NET чаще всего используют тип данных double, потому что
его размера вполне достаточно. В коде программы дробная часть записывается вне
зависимости от региональных настроек через точку:

double d = 1.2;

В этой строке кода объявляется переменная d, которой сразу же присваивается зна-
чение одна целая и две десятых.

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

Что произойдет, если попытаться присвоить значение одной переменной другой
переменной? Мы уже знаем, что переменная — это имя какого-то участка памяти.
Когда мы присваиваем значение одной переменной другой переменной, будут ли
обе переменные указывать на одну память? Это зависит от ряда условий. Так, для
простых типов (строка, число и т. п.) при присвоении копируется значение. Каждая
переменная является именем своего участка памяти, и при присвоении одно значе-
ние из своего участка памяти копируется в участок памяти другого. Но это не каса-
ется ссылочных типов, где копируется ссылка, и обе переменные начинают ссы-
латься на один и тот же объект в памяти.

Переменные мы будем использовать очень часто и в большинстве примеров,
поэтому тема работы с ними останется с вами надолго.

Рассмотрим простую, но очень полезную задачку на работу с переменными. Допус-
тим, что у нас есть две переменные:

string firstname = "Фленов";
string lastname = " Михаил";

Кто-то явно ошибся и в переменную для имени поместил фамилию, а в перемен-
ную для фамилии попало имя. Как поменять эти две переменные местами? Если мы
попытаемся скопировать фамилию в имя:

firstname = lastname;

то тогда в обеих переменных будет Михаил. Мы просто затерли имя и потеряли дан-
ные. Вместо этого надо завести еще одну переменную:

// скопировали Фленов из firstname в temp
string temp = firstname; // в temp теперь Фленов
firstname = lastname; // копируем Михаил в firstname
lastname = temp; // копируем из temp переменной фамилию

Заключение

В этой книге я постарался заинтересовать вас программированием для платформы
.NET с использованием языка C#. Надеюсь, что мне это удалось, и я смог дать вам
исходную базу для самостоятельного улучшения знаний. Я не пытался повторить
официальную документацию или другие книги. Моей целью было предоставить
вам такие сведения, которые станут основой для использования других источников
информации.
В сопровождающем книгу электронном архиве (см. приложение) вы найдете мно-
жество дополнительной документации по программированию и не только для
.NET. Помимо сведений о программировании я выложил там достаточно много ин-
формации и по Microsoft SQL Server, что будет полезно тем, кто собирается связать
свою жизнь с миром баз данных.
Нет ничего идеального, и если вы нашли в книге ошибку, то просьба сообщить мне
об этом через мой сайт www.flenov.info. Буду рад увидеть любые замечания и ком-
ментарии по этой книге.

Список литературы

1. Агуров П. C#. Разработка компонентов в MS Visual Studio 2005/2008. — СПб.:
БХВ-Петербург, 2008. — 480 с.

2. Нортроп Т. Разработка защищенных приложений на Visual Basic .NET и Visual
C# .NET. Учебный курс Microsoft. — СПб.: БХВ-Петербург, 2007. — 688 с.

3. Фленов М. Transact-SQL. — СПб.: БХВ-Петербург, 2006. — 550 с.
4. Фленов М. Компьютер глазами хакера. — 3-е изд. — СПб.: БХВ-Петербург,

2012. — 272 с.
5. Фленов М. Программирование на С++ глазами хакера. — 2-е изд. — СПб.: БХВ-

Петербург, 2009. — 320 с.
6. www.codeplex.com — сайт для проектов с открытым исходным кодом от компа-

нии Microsoft.
7. www.codeproject.com — один из самых старых сайтов по языкам С и С++. Со-

держит также большой раздел по .NET-технологиям, где можно найти статьи и
примеры с исходными кодами по различным темам.
8. www.flenov.info — мой сайт, на котором можно найти статьи и заметки о про-
граммировании и не только.
9. www.msdn.com — классический ресурс любого программиста .NET. Лично я
уже не устанавливаю файлы помощи на свой компьютер, потому что они отни-
мают слишком много места, а все свежее и полезное всегда доступно онлайн
в MSDN.

ПРИЛОЖЕНИЕ

Описание электронного архива,
сопровождающего книгу

Электронный архив с этой информацией можно скачать по ссылке ftp://ftp.bhv.ru/
9785977568272.zip или со страницы книги на сайте издательства https://bhv.ru/.

Папки Описание
\Documents
Дополнительная документация по программированию .NET,
\Source по среде разработки Visual Studio и по базам данных

Исходные коды программ из книги

Предметный указатель

. J

.NET 19 JIT-компиляция 20
.NET Core 18, 29, 30, 33, 35, 39
.NET Framework 17, 18, 30, 32, 33, 35 L

A LINQ (Language Integrated Query,
интегрированные в язык запросы) 178,
as, приведение типов 135 248–257

B M

base, обращение к предку 129 Main(), главный метод 111

C P

CLR (Common Language Runtime, среда PDB-файл 28
выполнения) 17, 18
S
CTS, общая система типов 42
stackalloc, выделение памяти 392
D static, ключевое слово 103

DllImport, атрибут 395 T

G this, обращение к текущему объекту 100

GAC, глобальный кэш сборок 35 U

H unsafe, небезопасный код 388

HTTP-клиент 429 V

I virtual, ключевое слово 126
Visual Studio: переменная среды окружения
IL-код 19
is, проверка класса 135 32

Предметный указатель 461

А ◊ Enum 156
◊ EventArgs 237
Аксессоры 85 ◊ Exception 220
◊ FileStream 264
Б ◊ Hashtable 212
◊ MemoryStream 277
Базы данных 397 ◊ Monitor 296
◊ транзакции 416 ◊ Object 124
Библиотека Dapper 424
Библиотеки 420 Equals() 127
ToString() 126
Д ◊ OleDbCommand 409
◊ OleDBConnection 399
Делегаты 236 ◊ OleDbTransaction 417
Деструктор 109 ◊ Queue 210
Домены приложений 299 ◊ Socket 440
◊ Stack 211
З ◊ Stream 276
◊ StreamReader 263
Запросы 248, 249, 251 ◊ StreamWriter 262
Значимые типы 380 ◊ String 165
◊ Thread 290
И ◊ TimeSpan 162
◊ Uri 433
Интерфейс 181 ◊ WebBrowser 446
◊ IComparable 206 ◊ WebProxy 432
◊ IComparer 208 ◊ WebRequest 430
◊ IEnumerable 203 ◊ XmlTextWriter 268
◊ наследование 190 ◊ абстрактный 137
Исключения 220 ◊ методы 89
◊ throw 226 ◊ модификаторы доступа 83
◊ блок ◊ псевдоним 114
◊ свойства 84
catch 224 Комментарии 40
finally 231 ◊ многострочные 41
try 223 Компиляция 30
◊ переполнение 232 ◊ JIT- 20
Константы 77
К Конструктор 99
Куча 381, 383
Класс 81
◊ AppDomain 300 М
◊ Array 194
◊ ArrayList 198 Массивы 52, 194
◊ Console 143 ◊ динамические 198
◊ индексатор 201
метод Read() 150 ◊ невыровненные 196
метод ReadLine() 150 ◊ нумерация 54
метод Write() 149 ◊ типизированные 213
метод WriteLine() 147 Методы 89
◊ Convert 153 ◊ анонимные 246
◊ DateTime 162 ◊ контроллера 331

462 Предметный указатель

Методы (прод.) ◊ метаданные 20
◊ параметр ◊ приватная 36, 427
◊ разделяемая 36
out 96 Сборщик мусора 382
params 97 Свойства 84
ref 95 ◊ аксессоры 85
◊ перегрузка 98 Сериализация 278
◊ переопределение Синтаксис программирования Razor 341
new 127 События 237
override 126 ◊ делегаты 236
◊ синхронные и асинхронные вызовы 245
О Создание представлений 335
Сокеты 435
Область видимости 131 Ссылочные типы 380
Общеязыковая среда выполнения (Common Структуры 159, 380

Language Runtime, CLR) 17, 380 Т
Объект 122
Оператор Типы данных
◊ break 75 ◊ var 135
◊ continue 76 ◊ объектные 42
◊ if 64 ◊ ссылочные 42
◊ switch 67
◊ typeof 157 У
◊ using 113
◊ yield 209 Указатели 389
◊ перегрузка 168 ◊ fixed, ключевое слово 393
Упаковка (boxing) 382
П Утечка памяти 387
Утилита
Переменные 41 ◊ csc.exe 32
Перечисление 155 ◊ ildasm.exe 38
◊ ConsoleColor 143
◊ enum 56 Ф
Потоки 289
◊ ввода/вывода 275 Функции Windows API 394
Преобразование типов 152
Приложение: консольное 142 Ц
Приложения MVC 310
Проект 21 Цикл
Прокси-сервер 432 ◊ do..while 73
Пространства имен 113 ◊ for 69
Пул потоков 297 ◊ foreach 73
◊ while 72
Р
Ш
Распаковка (unboxing) 382
Рефлектор 250 Шаблон MVC (Model-View-Controller,
Решение 21 Модель-Представление-Контроллер) 323

С Шаблоны 173

Сборка 19
◊ версия 36

Умрихин Е.

www.bhv.ru Разработка Android-приложений на С#
с использованием Xamarin с нуля

Отдел оптовых поставок:
e-mail: [email protected]

Создавай мобильные приложения с Xamarin!

Вы узнаете, как:

• использовать интегрированную среду
разработки IDE

• работать с Activity

• выбирать и использовать управляющие
элементы

• записывать и считывать данные

• взаимодействовать с веб-сервисами
и средствами коммуникаций

• собирать написанные на С# мобильные
приложения

• публиковать приложения в Google Play

Язык программирования C# — одно из самых популярных средств разработки.
Многие уже владеют приемами программирования на базе технологий Microsoft,
и эти навыки можно с успехом использовать при создании мобильных приложений
для платформы Android. Изучение платформы Xamarin.Android дает возможность
внедрять и развивать свои мобильные сервисы с использованием технологического
стека Microsoft.

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

Умрихин Евгений Дмитриевич, кандидат технических наук, инженер-программист в круп-
ной региональной страховой компании. Имеет многолетний опыт разработки и внедрения
распределенных IT-решений с использованием веб-сервисов ASP.NET и мобильных плат-
форм Android и iOS. Обладатель ряда авторских свидетельств об официальной регистрации
программ для ЭВМ.

www.bhv.ru Шлее М.

Qt 5.10. Профессиональное программирование
на C++

Отдел оптовых поставок:
e-mail: [email protected]

Платформно-независимая реализация приложений —
это уже сегодняшний и завтрашний день программной индустрии.

И эта книга станет вашим путеводителем в будущее.

• Кроссплатформенная реализация приложений

для Windows, Mac OS X и Linux

• Разработка мобильных приложений для Android

и iOS

• Программирование 2D- и 3D-графики,

мультимедиа, веб-приложений, баз данных,
сети, таймера, многопоточности, XML, QML
и JavaScript

• 240 завершенных программ

Книга подробно знакомит с библиотекой Qt 5.10,
являющейся не только средством для создания
пользовательских интерфейсов, но и позволяющей
разрабатывать приложения практически любой
сложности. Недаром Qt широко используется мно-
гими организациями и компаниями, такими как ADOBE, AMAZON, AMD, BOSCH,
BLACKBERRY, CANNON, CISCO SYSTEMS, DISNEY, INTEL, IBM, PANASONIC,
PIONEER, PHILIPS, ORACLE, HP, GOOBER, GOOGLE, NASA, NEC, NEONWAY,
NOKIA, SAMSUNG, SIEMENS, SONY, XEROX, XILINX, YAMAHA и др.

Если вы хотите идти в ногу со временем, то вам без этой книги просто не обойтись,
поскольку она является исчерпывающим пособием по написанию Qt 5-программ
на С++ и QML.

Макс Шлее, закончил Университет прикладных наук в городе Кайзерлаутерн (Германия).
Сооснователь компании NEONWAY по разработке программного обеспечения на Qt. Рабо-
тал разработчиком программного обеспечения в фирмах THOMSON, Grass Valley,
DigitalFilmTechnology Weiterstadt, Goober Ltd. и Advancis. Эксперт в области объектно-
ориентированного проектирования, специализирующийся на C++ и Qt. Создатель более 40
программ и приложений для Windows, Mac OS X, iPhone, iPad и Android. Увлеченно зани-
мается проектами в области программирования графики, звука и анализа финансовых рын-
ков. Является автором ряда статей, научных докладов на международных конференциях по
генеративному программированию пользовательского интерфейса. Автор книг «Qt 4/4.5/4.8.
Профессиональное программирование на C++» и др. Связаться с автором можно по адресу
электронной почты [email protected] или через его персональный блог
www.maxschlee.com.


Click to View FlipBook Version