Полное руководство. С# 4.0
Полное руководство. С# 4.0 читать книгу онлайн
В этом полном руководстве по C# 4.0 — языку программирования, разработанному специально для среды .NET, — детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки.Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.
В данной книге вы найдете:- Полное описание средств языка C#- Подробное рассмотрение новых средств в версии C# 4.0, в том числе PLINQ, библиотеку TPL, именованные и необязательные аргументы, динамический тип данных и многое другое- Сотни простых и понятных примеров программ с комментариями.- Самый полный источник информации по C#Благодаря поддержке параллельного языка интегрированных запросов (PLINQ) и библиотеки распараллеливания задач (TPL) версия 4.0 стала новой вехой в программировании на C#, и поэтому Герберт Шилдт, автор лучших книг по программированию, обновил и расширил свое классическое руководство, чтобы охватить в нем эти и другие нововведения. В книге подробно описываются языковые средства C#, даются профессиональные рекомендации и приводятся сотни примеров программ, охватывающих все аспекты программирования на C#, включая синтаксис, ключевые слова и основные библиотеки, не говоря уже о таких новшествах, как PLINQ, TPL, динамический тип данных, а также именованные и необязательные аргументы.Это необходимое каждому программирующему на C# справочное руководство написано простым и доступным языком, благодаря которому Герберт Шилдт стал таким популярным. В книге найдут ответы на насущные вопросы по C# как начинающие, так и опытные программисты.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Выполнение этой программы дает следующий результат.Сумма равна 15
Обратите внимание на то, что процесс суммирования выполняется полностьюв операторе цикла for, и для этого тело цикла не требуется. В этом цикле особое внимание обращает на себя итерационное выражение.sum += i++
Подобные операторы не должны вас смущать. Они часто встречаются в программах, профессионально написанных на С#, и становятся вполне понятными, если разобрать их по частям. Дословно приведенный выше оператор означает следующее: сложить со значением переменной sum результат суммирования значений переменныхsum и i, а затем инкрементировать значение переменной i. Следовательно, данныйоператор равнозначен следующей последовательности операторов.sum = sum + i;i++;Объявление управляющих переменных в цикле for
Нередко переменная, управляющая циклом for, требуется только для выполнениясамого цикла и нигде больше не используется. В таком случае управляющую переменную можно объявить в инициализирующей части оператора цикла for. Например, в приведенной ниже программе вычисляется сумма и факториал чисел от 1 до 5,а переменная i, управляющая циклом for, объявляется в этом цикле.// Объявить переменную управления циклом в самом цикле for.using System;class ForVar { static void Main() { int sum = 0; int fact = 1; // вычислить факториал чисел от 1 до 5 for (int i = 1; i <= 5; i++) { sum += i; // Переменная i действует в цикле. fact *= i; } // А здесь переменная i недоступна. Console.WriteLine("Сумма равна " + sum); Console.WriteLine("Факториал равен " + fact); }}
Объявляя переменную в цикле for, не следует забывать о том, что область действияэтой переменной ограничивается пределами оператора цикла for. Это означает, чтоза пределами цикла действие данной переменной прекращается. Так, в приведенномвыше примере переменная i оказывается недоступной за пределами цикла for. Длятого чтобы использовать переменную управления циклом в каком-нибудь другом месте программы, ее нельзя объявлять в цикле for.
Прежде чем переходить к чтению следующего материала, поэкспериментируйтес собственными разновидностями оператора цикла for. В ходе эксперимента вы непременно обнаружите замечательные свойства этого оператора цикла.Оператор цикла while
Еще одним оператором цикла в C# является оператор while. Ниже приведенаобщая форма этого оператора:while (условие) оператор;
где оператор — это единственный оператор или же блок операторов, а условие означает конкретное условие управления циклом и может быть любым логическим выражением. В этом цикле оператор выполняется до тех пор, пока условие истинно. Кактолько условие становится ложным, управление программой передается строке кода,следующей непосредственно после цикла.
Ниже приведен простой пример программы, в которой цикл while используетсядля вычисления порядка величины целого числа.// Вычислить порядок величины целого числа.using System;class WhileDemo { static void Main() { int num; int mag; num = 435679; mag = 0; Console.WriteLine("Число: " + num); while(num > 0) { mag++; num = num / 10; }; Console.WriteLine("Порядок величины: " + mag); }}
Выполнение этой программы дает следующий результат.Число: 435679Порядок величины: 6
Приведенный выше цикл while действует следующим образом. Сначала проверяется значение переменной num. Если оно больше нуля, то переменная mag, выполняющая роль счетчика порядка величины, инкрементируется, а значение переменной numделится на 10. Цикл повторяется до тех пор, пока значение переменной num остаетсябольше нуля. Как только оно окажется равным нулю, цикл завершается, а в переменной mag остается порядок величины первоначального числового значения.
Как и в цикле for, в цикле while проверяется условное выражение, указываемоев самом начале цикла. Это означает, что код в теле цикла может вообще не выполняться, а также избавляет от необходимости выполнять отдельную проверку перед самимциклом. Данное свойство цикла while демонстрируется в следующем примере программы, где вычисляются целые степени числа 2 от 0 до 9.// Вычислить целые степени числа 2.using System;class Power { static void Main() { int e; int result; for(int i=0; i < 10; i++) { result = 1; e = i; while (e > 0) { result *= 2; e--; } Console.WriteLine("2 в степени " + i + " равно " + result); } }}
Результат выполнения этой программы приведен ниже.2 в степени 0 равно 12 в степени 1 равно 22 в степени 2 равно 42 в степени 3 равно 82 в степени 4 равно 162 в степени 5 равно 322 в степени 6 равно 642 в степени 7 равно 1282 в степени 8 равно 2562 в степени 9 равно 512
Обратите внимание на то, что цикл while выполняется только в том случае, еслизначение переменной е больше нуля. А когда оно равно нулю, как это имеет место напервом шаге цикла for, цикл while пропускается.Оператор цикла do-while
Третьим оператором цикла в C# является оператор do-while. В отличие от операторов цикла for и while, в которых условие проверялось в самом начале цикла,в операторе do-while условие выполнения цикла проверяется в самом его конце. Этоозначает, что цикл do-while всегда выполняется хотя бы один раз. Ниже приведенаобщая форма оператора цикла do-while.do {операторы;} while (условие);
При наличии лишь одного оператора фигурные скобки в данной форме записинеобязательны. Тем не менее они зачастую используются для того, чтобы сделать конструкцию do-while более удобочитаемой и не путать ее с конструкцией цикла while.Цикл do-while выполняется до тех пор, пока условное выражение истинно.
В приведенном ниже примере программы цикл do-while используется для представления отдельных цифр целого числа в обратном порядке.// Отобразить цифры целого числа в обратном порядке.using System;class DoWhileDemo { static void Main() { int num; int nextdigit; num = 198; Console.WriteLine("Число: " + num); Console.Write("Число в обратном порядке: "); do { nextdigit = num % 10; Console.Write(nextdigit); num = num / 10; } while(num > 0); Console.WriteLine(); }}
Выполнение этой программы дает следующий результат.Число: 198Число в обратном порядке: 891
Приведенный выше цикл действует следующим образом. На каждом его шагекрайняя слева цифра получается в результате расчета остатка от деления целого числа(значения переменной num) на 10. Полученная в итоге цифра отображается. Далее значение переменной num делится на 10. А поскольку это целочисленное деление, то в егорезультате крайняя слева цифра отбрасывается. Этот процесс повторяется до тех пор,пока значение переменной num не достигнет нуля.Оператор цикла foreach
Оператор цикла foreach служит для циклического обращения к элементам коллекции, которая представляет собой группу объектов. В C# определено несколько видов коллекций, к числу которых относится массив. Подробнее о цикле foreach речьпойдет в главе 7, где рассматриваются массивы.Применение оператора break для выхода из цикла
С помощью оператора break можно специально организовать немедленный выход из цикла в обход любого кода, оставшегося в теле цикла, а также минуя проверкуусловия цикла. Когда в теле цикла встречается оператор break, цикл завершается,а выполнение программы возобновляется с оператора, следующего после этого цикла.
Рассмотрим простой пример программы.// Применить оператор break для выхода из цикла.using System;class BreakDemo { static void Main() { // Использовать оператор break для выхода из этого цикла. for(int i=-10; i <= 10; i++) { if(i > 0) break; // завершить цикл, как только значение // переменной i станет положительным Console.Write(i + " "); } Console.WriteLine("Готово!"); }}
Выполнение этой программы дает следующий результат.-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 Готово!
Как видите, цикл for организован для выполнения в пределах от -10 до 10, но, несмотря на это, оператор break прерывает его раньше, когда значение переменной iстановится положительным.