Герберт Шилдт - C# 4.0: полное руководство
- Название:C# 4.0: полное руководство
- Автор:
- Жанр:
- Издательство:ООО И.Д. Вильямс
- Год:2011
- Город:Москва -- Киев
- ISBN:978-5-8459-1684-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Герберт Шилдт - C# 4.0: полное руководство краткое содержание
В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки.
Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию
C# 4.0: полное руководство - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Для выполнения оператора goto
требуется метка — действительный в C# идентификатор с двоеточием. Метка должна находиться в том же методе, где и оператор goto
, а также в пределах той же самой области действия. В приведенном ниже примере программы цикл суммирования чисел от 1 до 100 организован с помощью оператора goto
и соответствующей метки.
х = 1;
loopl: х++;
if(х < 100) goto loopl;
Кроме того, оператор goto
может быть использован для безусловного перехода к ветви case
или default
в операторе switch
. Формально ветви case
или default
выполняют в операторе switch
роль меток. Поэтому они могут служить адресатами оператора goto
. Тем не менее оператор goto
должен выполняться в пределах оператора switch
. Это означает, что его нельзя использовать как внешнее средство для безусловного перехода в оператор switch
. В приведенном ниже примере программы демонстрируется применение оператора goto
в операторе switch.
// Применить оператор goto в операторе switch.
using System;
class SwitchGoto {
static void Main() {
for(int i=1; i < 5; i++) {
switch(i) {
case 1:
Console.WriteLine("В ветви case 1");
goto case 3;
case 2:
Console.WriteLine("В ветви case 2");
goto case 1;
case 3:
Console.WriteLine("В ветви case 3");
goto default;
default:
Console.WriteLine("В ветви default");
break;
}
Console.WriteLine();
}
// goto case 1;
// Ошибка! Безусловный переход к оператору switch недопустим.
}
}
Вот к какому результату приводит выполнение этой программы.
В ветви case 1
В ветви case 3
В ветви default
В ветви case 2
В ветви case 1
В ветви case 3
В ветви default
В ветви case 3
В ветви default
В ветви default
Обратите внимание на то, как оператор goto
используется в операторе switch
для перехода к другим его ветвям case
или к ветви default
. Обратите также внимание на то, что ветви case
не оканчиваются оператором break
. Благодаря тому что оператор goto
препятствует последовательному переходу от одной ветви case
к другой, упоминавшееся ранее правило недопущения "провалов" не нарушается, а следовательно, необходимость в применении оператора break
в данном случае отпадает. Но как пояснялось выше, оператор goto
нельзя использовать как внешнее средство для безусловного перехода к оператору switch
. Так, если удалить символы комментария в начале следующей строки:
// goto case 1;
// Ошибка! Безусловный переход к оператору switch недопустим.
приведенная выше программа не будет скомпилирована. Откровенно говоря, применение оператора goto
в операторе switch
, в общем, не рекомендуется как стиль программирования, хотя в ряде особых случаев это может принести определенную пользу.
Ниже приведен один из полезных примеров применения оператора goto
для выхода из глубоко вложенной части программы.
// Продемонстрировать практическое применение оператора goto.
using System;
class Use_goto {
static void Main() {
int i=0, j=0, k=0;
for(i=0; i < 10; i++) {
for(j=0; j < 10; j++ ) {
for(k=0; k < 10; k++) {
Console.WriteLine ("i, j, k: " + i + " " + j +
" " + k) ;
if(k == 3) goto stop;
}
}
}
stop:
Console.WriteLine("Остановлено! i, j, k: " + i + ", " + j + " " + k) ;
}
}
Выполнение этой программы дает следующий результат.
i, j, k: 000
i, j, k: 001
i, j, k: 002
i, j, k: 003
Остановлено! i, j, k: 0, 0 3
Если бы не оператор goto
, то в приведенной выше программе пришлось бы прибегнуть к трем операторам if
и break
, чтобы выйти из глубоко вложенной части этой программы. В данном случае оператор goto
действительно упрощает код. И хотя приведенный выше пример служит лишь для демонстрации применения оператора goto
, вполне возможны ситуации, в которых этот оператор может на самом деле оказаться полезным.
И последнее замечание: как следует из приведенного выше примера, из кодового блока можно выйти непосредственно, но войти в него так же непосредственно нельзя.
ГЛАВА 6 Введение в классы, объекты и методы
Эта глава служит введением в классы. Класс составляет основу языка С#, поскольку он определяет характер объекта. Кроме того, класс служит основанием для объектно-ориентированного программирования (ООП).
В пределах класса определяются данные и код. А поскольку классы и объекты относятся к основополагающим элементам С#, то для их рассмотрения требуется не одна глава книги. В данной главе рассмотрение классов и объектов начинается с их главных особенностей.
Основные положения о классах
Классы использовались в примерах программ с самого начала этой книги. Разумеется, это были лишь самые простые классы, что не позволяло выгодно воспользоваться большинством их возможностей. На самом же деле классы намного более эффективны, чем это следует из приведенных ранее примеров их ограниченного применения.
Начнем рассмотрение классов с основных положений.
Класс представляет собой шаблон, по которому определяется форма объекта. В нем указываются данные и код, который будет оперировать этими данными. В C# используется спецификация класса для построения объектов , которые являются экземплярами класса. Следовательно, класс, по существу, представляет собой ряд схематических описаний способа построения объекта. При этом очень важно подчеркнуть, что класс является логической абстракцией.
Физическое представление класса появится в оперативной памяти лишь после того, как будет создан объект этого класса.
При определении класса объявляются данные, которые он содержит, а также код, оперирующий этими данными. Если самые простые классы могут содержать только код или только данные, то большинство настоящих классов содержит и то и другое.
Читать дальшеИнтервал:
Закладка: