Симон Робинсон - 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 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Теперь о параметрах. В этом приложении не будут подробно рассматриваться параметры, но отметим просто, что все обработчики событий в C# должны иметь два параметра, аналогичные данным, и эти параметры могут предоставить некоторую дополнительную полезную информацию о событии (например, для события перемещения мыши они могут сообщать о положении указателя мыши).
Переменные
Пример SquareRoot
показывает достаточно много различий между объявлениями переменных в C# и VB. В версии VB объявляется число с плавающей точкой и задается его значение таким образом:
Dim NumberInput As Single
NumberInput = CSng(Me.txtNumber.Text)
Версия C# выглядит следующим образом:
float NumberInput = float.Parse(this.txtNumber.Text);
Как и можно было ожидать, типы данных в C# не совсем такие, как в VB. float
является эквивалентом в C# для Single
. Наверно проще понять, что происходит, если разделить версию C# на две строки. Следующий код C# имеет точно такой же результат, что и строка выше:
float NumberInput;
NumberInput = float.Parse(this.txtNumber.Text);
Теперь можно сравнить объявление и инициализацию переменной по отдельности.
Объявления
Очевидное синтаксическое различие между C# и VB в объявлении переменных состоит в том, что в C# тип данных предшествует, а не следует за именем переменной без использования других ключевых слов. Это дает объявлениям C# более компактный формат, чем их аналогам в VB.
Отметим, что идея объявления, состоящего только из типа, за которым следует имя, используется также и в других местах. Посмотрим снова на объявление метода в C#:
private void OnClickShowResults(object sender, System.EventArgs e);
Тип ( void
) предшествует имени метода, не используя никаких других ключевых слов для указания того, что объявляется — это очевидно из контекста. То же самое справедливо для параметров. Типами параметров являются object
и System.EventArgs
. Тип object
в C#, кстати, играет роль, аналогичную Object
в VB,— он указывает то, для чего тип данных не был определен. Однако object
в C# значительно более мощный, чем Object в VB, и в C# object
заменяет тип данных Variant из VB. object
мы рассмотрим позднее. System.EventArgs
не будет рассматриваться подробно в этом приложении. Это базовый класс .NET и он не имеет аналога в VB.
В случае переменных синтаксис объявления, использованный в C#, позволяет комбинировать объявление с заданием начального значения переменной. В этом примере NumberInput
инициализируется достаточно сложным выражением, которое скоро будет рассмотрено подробнее. Но сначала два простых примера:
int x = 10; // int аналогично Long в VB
string Message = "Hello World"; // string аналогично String в VB
Необходимо также отметить некоторые моменты, связанные с переменными.
VB позволяет присоединять суффиксы к переменным, чтобы указать их тип данных: $
для String
, %
для Int
, &
для Long
.
Dim Message$ ' будет string
Такой синтаксис не поддерживается в C#. Имена переменных могут содержать только буквы, цифры и символ подчеркивания, и необходимо всегда явно указывать тип данных.
В примере кода VB переменной NumberInput
по умолчанию будет присвоено значение 0 после ее объявления. Это на самом деле ненужная фата процессорного времени, так как этой переменной немедленно в следующей инструкции присваивается новое значение. C# немного больше знает о производительности и не беспокоится о задании каких-либо значений по умолчанию для локальных переменных при их объявлении. Вместо этого он требует, чтобы такие переменные всегда инициализировались в коде программы до их использования. Компилятор C# будет инициировать ошибку компиляции, если попытаться прочитать значение локальной переменной прежде, чем она будет задана.
Присваивание значений переменным
Присваивание значений переменным в C# делается с помощью такого же синтаксиса, как и в VB. После имени переменной помещается знак =
, за которым следует присваиваемое значение. Однако необходимо отметить, что это единый синтаксис, принятый в C#. В некоторых случаях в VB используется Let
, в то время как для объектов в VB всегда используется ключевое слово Set
:
Set MyListBox = new ListBox;
C# не использует отдельный синтаксис для присваивания объектных ссылок. Эквивалент в C# для вышеприведенного будет следующим:
MyListBox = new ListBox();
Помните, что в C# значения переменным всегда присваиваются с помощью синтаксиса <���ИмяПеременной>=<���Выражение>
.
Классы
Теперь рассмотрим, что происходит в выражении, используемом для инициализации переменной NumberInput
в примере SquareRoot
. В C# и VB делается практически одно и то же: извлекается текст из текстового поля txtNumber
. Но синтаксис этого выглядит по-разному в двух этих языках:
NumberInput = CSng(Me.txtNumber.Text)
и
float NumberInput = float.Parse(this.txtNumber.Text);
Получение значения из текстового поля достаточно похоже в обоих случаях. Единственное различие для этой части процесса является чисто синтаксическим — VB использует ключевое слово Me
, в то время как C# применяет ключевое слово this
, которое имеет точно такое же значение (фактически, в C# можно его при желании опустить, так же как можно опустить Me
в VB). В C# можно было в равной степени написать:
float NumberInput = float.Parse(txtNumber.Text);
Более интересной частью является то, как строка, извлеченная из текстового поля, преобразуется во float
(или single
), потому что это иллюстрирует фундаментальное свойство языка C#, о котором кратко упоминалось ранее:
В C# все является частью класса.
В VB для преобразования используется функция CSng
. Однако C# не имеет функций в том виде, как в VB. C# является полностью объектно-ориентированным и разрешает объявлять только те методы, которые являются частью класса.
В C# преобразование из строки в число с плавающей точкой выполняется методом Parse()
. Однако, так как Parse()
является частью класса, ему должно предшествовать имя класса. Класс, на котором необходимо вызвать метод Parse()
, будет классом float
. До сих пор float
интерпретировался просто как эквивалент C# для Single
из VB. Но на самом деле он также является классом. В C# все типы данных тоже являются классами, и значит, такие вещи как int
, float
и string
имеют методы и свойства, которые можно вызывать (хотя необходимо отметить, что int
и float
являются специальными типами класса, известного в C# как структуры. Различие для этого кода не важно, но оно будет объяснено позже.)
Интервал:
Закладка: