Симон Робинсон - C# для профессионалов. Том II
- Название:C# для профессионалов. Том II
- Автор:
- Жанр:
- Издательство:Лори
- Год:2003
- Город:Москва
- ISBN:5-85582-187-0
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Симон Робинсон - C# для профессионалов. Том II краткое содержание
Платформа .NET предлагает новую среду, в которой можно разрабатывать практически любое приложение, действующее под управлением Windows, а язык C# — новый язык программирования, созданный специально для работы с .NET.
В этой книге представлены все основные концепции языка C# и платформы .NET. Полностью описывается синтаксис C#, приводятся примеры построения различных типов приложений с использованием C# — создание приложений и служб Windows, приложений и служб WWW при помощи ASP.NET, а также элементов управления Windows и WWW Рассматриваются общие библиотеки классов .NET, в частности, доступ к данным с помощью ADO.NET и доступ к службе Active Directory с применением классов DirectoryServices.
Для кого предназначена эта книгаЭта книга предназначена для опытных разработчиков, возможно, имеющих опыт программирования на VB, C++ или Java, но не использовавших ранее в своей работе язык C# и платформу .NET. Программистам, применяющим современные технологии, книга даст полное представление о том, как писать программы на C# для платформы .NET.
Основные темы книги• Все особенности языка C#
• C# и объектно-ориентированное программирование
• Приложения и службы Windows
• Создание web-страниц и web-служб с помощью ASP NET
• Сборки .NET
• Доступ к данным при помощи ADO NET
• Создание распределённых приложений с помощью NET Remoting
• Интеграция с COM, COM+ и службой Active Directory
C# для профессионалов. Том II - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
public MainForm() {
InitializeComponent();
Employee Britney = new Employee("Britney Spears", 20000.00M);
Employee Elton = new Manager("Elton John", 50000.00M);
Manager Ginger = new Manager("Geri Halliwell", 50000.00M, 20000.00M);
Employee[] Employees = new Employee[3];
Employees[0] = Britney;
Employees[1] = Elton;
Employees[2] = Ginger;
for (int I = 0; I < 3; I++) {
this.listBox1.Items.Add(Employees[I].Name);
this.listBox1.Items.Add(Employees[I].ToString());
this.listBox1.Items.Add("");
}
}
Мы вызываем свойство Name
и метод ToString()
каждого элемента массива. Выполнение кода создает следующий результат.

Приведенный код показывает, что C# при работе с массивами использует квадратные скобки. Это означает, что в отличие от VB, не существует опасности какой-либо путаницы между массивом и вызовом метода или функции. Синтаксис для объявления массива выглядит так:
Employee[] Employees = new Employee[3];
Мы видим, что массив переменных некоторого тип объявляют, помещая квадратные скобки после имени типа. Массив в C# всегда считается ссылочным объектом (даже если его элементы являются простыми типами, как int
или double
), поэтому на самом деле существует два этапа: объявление ссылки и создание экземпляра массива. Чтобы сделать это понятнее, разделим приведенную выше строку кода следующим образом:
Employee[] Employees;
Employees = new Employee[3];
He существует разницы между тем, что делается здесь и созданием экземпляров объектов, за исключением того, что используются квадратные скобки для указания, что это массив. Отметим также, что размер массива определяется, когда создается экземпляр объекта, сама ссылка не содержит данных о размере массива — только его размерность. Размерность определяется любым количеством запятых в объявлении массива, поэтому, например, если надо объявить двухмерный, 3×4 массив чисел типа double
, можно написать:
double [,] DoubleArray = new double[3, 4];
Есть и другие несущественные различия в синтаксисе объявления массивов, но мы будем придерживаться приведенных здесь правил. Когда имеется массив, то значения его элементам присваиваются обычным образом. Отметим, однако, одно различие между C# и VB, состоящее в том, что C# всегда начинает с элемента с индексом 0. В VB имеется возможность изменить его на индекс 1, используя инструкцию Option Base
. Также в VB можно определить любую нижнюю границу для любого конкретного массива. Но это свойство не добавляет на самом деле никаких преимуществ и может снизить производительность, так как это означает, что при любом доступе к элементу массива в VB, код должен выполнить дополнительную проверку, чтобы определить, какова нижняя граница массива. C# такое действие не поддерживает.
В приведенном выше коде после инициализации элементов массива мы перебираем их в цикле. Необычный синтаксис цикла for
будет скоро рассмотрен.
Отметим, что поскольку массив был объявлен как массив объектов Employee
, то можно получить доступ только к тем членам каждого объекта, которые определены для класса Employee
. Если требуется доступ к свойству Bonus
любого объекта массива, то необходимо сначала преобразовать соответствующую ссылку в ссылку Manager
, что будет означать проверку того, что объект на самом деле является менеджером. Это не трудно сделать, но данный вопрос находится за пределами рассмотрения настоящего приложения.
С другой стороны, хотя используются ссылки Employee
, мы всегда выбираем правильную версию метода ToString()
. Если указанный объект является объектом Manager
, то при вызове метода ToString()
для этого объекта будет выполняться версия метода ToString()
, определенная в классе Manager
. В этом состоит достоинство перезагрузки методов в C#. Можно заменить некоторые методы в производном классе и знать, что независимо от того, какой ссылочный тип используется для доступа к этому объекту, для него всегда будет выполняться правильный метод.
Цикл for
Давайте теперь рассмотрим странный синтаксис цикла for
. Этот цикл является эквивалентом C# для следующего кода VB:
Integer I
For I = 1 То 3
listBox1.Items.Add "Details of the Employee"
Next
Идея цикла For
в VB состоит в том, что он начинается с инициализации некоторой переменной — управляющей переменной цикла, и каждый раз при проходе цикла что-то добавляется к управляющей переменной, пока она не превысит конечное значение. Это достаточно полезно, но не дает почти никакой гибкости в работе цикла. Хотя можно изменять значение приращения или даже сделать его отрицательным, используя возможности Step
, цикл всегда работает с помощью вычислений, и проверка на выход из цикла всегда происходит по достижении переменной некоторого минимального или максимального значения.
В C# цикл for
обобщает эту концепцию. Базовая идея цикла for
в C# следующая. В начале цикла что-то делается, на каждом шаге цикла тоже что-то делается, чтобы перейти к следующей итерации, затем, чтобы определить, когда выходить из цикла, выполняется некоторая проверка. Сравнение версий Visual Basic и C# выглядит следующим образом:
VB | C# | |
---|---|---|
В начале цикла | Инициализация управляющей переменной цикла | Выполнить что-то |
Проверка на выход из цикла | Не превысила ли переменная цикла некоторого значения? | Проверка некоторого условия |
В конце каждой итерации | Увеличить управляющую переменную цикла | Выполнить что-то |
Это может выглядеть как-то неопределенно, но зато дает большую гибкость. Например, в C# вместо добавления некоторой величины к управляющей переменной цикла на каждой итерации можно добавлять какое-то число, которое считывается из файла и которое изменяется на каждой итерации. Проверка не должна быть проверкой значения управляющей переменной цикла, это может быть проверка, например, достижения конца файла. Это позволяет при подходящем выборе начального действия, проверки и действия в конце каждой итерации циклу for
эффективно выполнять те же задачи, что и любому из циклов VB — For
, Foreach
, Do
и While
, или цикл может вообще работать неким экзотическим образом, для которого нет простого эквивалента в VB. Цикл for
в C# действительно представляет полную свободу управления циклом в том виде, какой будет необходим для рассматриваемой задачи.
Надо отметить, что C# поддерживает также циклы foreach
, do
и while
для соответствующих ситуаций.
Давайте вернемся к точному синтаксису. Вспомним, что версия C# для приведенного выше цикла for
выглядит следующим образом:
Интервал:
Закладка: