Симон Робинсон - 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# как структуры. Различие для этого кода не важно, но оно будет объяснено позже.)
Интервал:
Закладка: