Симон Робинсон - 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# является языком программирования, отличным от C++. В то время как C++ был создан для общего объектно-ориентированного программирования в те дни, когда типичный компьютер был автономной машиной, выполняющей интерфейс пользователя на основе командной строки, C# разработан специально для работы с .NET и согласован с современной средой Windows и управляемыми мышью интерфейсами пользователя, сетами и Интернетом, Однако также неоспоримо, что два языка очень похожи как своим синтаксисом, так и тем что оба они созданы для использования одной парадигмы программирования, где код основывается на иерархиях наследуемых классов. Эта похожесть неудивительна при условии, что, как часто отмечалось в этой книге, C# в большой степени был создан как объектно-ориентированный язык, взявший самое лучшее из ранее созданных объектно-ориентированных языков программирования, из которых C++, несомненно, был до сих пор наиболее успешным примером, но отказался от более неудачных свойств этих языков
В связи со сходством между этими двумя языками программирования разработчики, использующие C++, могут обнаружить, что самый простой путь изучения C# состоит в использовании его как C++ с небольшими отличиями и в изучении этих отличий. Это приложение создано для того, чтобы в этом помочь. Мы начнем с обширного обзора, который в общих терминах дает понятия об основных различиях между двумя языками и также указывает, какие области у них совпадают. Затем мы сравним как выглядит стандартная программа "Hello, World" в каждом из этих языков. Большой объем приложения посвящен последовательномy анализу каждой из основных областей языка и подробному сравнению C# и C++. Очевидно, что приложение такого объема не может быть исчерпывающе полным, но оно создано для того чтобы охватить главные различия между языками, которые могут встретиться в ходе повседневного программирования. Отметим, что C# в большом числе областей существенно опирается на поддержку библиотеки базовых классов платформы .NET. В этом приложении мы ограничим наше внимание самим языком C# и не будем подробно рассматривать базовые классы.
Для целей сопоставления в качестве эталона используется ANSI C++. Компания Microsoft добавила многочисленные расширения к C++, но компилятор Windows C++ имеет некоторые отличия, несовместимые со стандартом ANSI, которые будут указаны, хотя они обычно не используются при сравнении двух языков.
Соглашения в этом приложении
Отметим, что в данном приложении мы придерживаемся дополнительных соглашений при изображении кода. Код C# всегда выводится, как и в остальных частях книги, с серым затенением:
// это код C#
class MyClass : MyBaseClass {
Если требуется выделить новый или важный код C#, он будет выводиться жирным шрифтом:
// это код C#
class MyClass : MyBaseClass // мы уже видели этот фрагмент
{
int x; // это интересно
Код C++, представленный для сравнения, выглядит следующим образом:
// это код C++
class CMyClass : public CMyBaseClass {
В образцах кода в этом приложении при использовании двух языков под Windows учитываются также большинство общих соглашений о наименованиях. Следовательно, имена классов в примерах C++ начинаются с C, в то время как соответствующие имена в примерах C# — нет. Также часто в образцах кода C++ используется для имен переменных "венгерский" стиль именования объектов.
Терминология
Необходимо знать, что несколько конструкций языка используют различную терминологию в C# и C++. Переменные члены в C++ называются полямив C#, в то время как функции в C++ называются методамив C#. В C# термин функцияимеет более общее значение и ссылается на любой член класса, который содержит код. Это означает, что функция охватывает методы, свойства, конструкторы, деструкторы, индексаторы и перезагруженные версии операторов. В C++ функция и метод часто используются взаимозаменяемо, хотя, строго говоря, в C++ метод является виртуальной функцией-членом.
Если все это звучит путано, то следующая таблица должна в этом помочь разобраться:
Значение | Термин C++ | Термин C# |
---|---|---|
Переменная, которая является членом класса | Переменная-член | Поле |
Любой элемент в классе, который содержит инструкции | Функция (или функция-член) | Функция |
Элемент класса, который содержит инструкции и вызывается по имени с помощью синтаксиса DoSomething(/* параметры */) |
Функция (или функция-член) | Метод |
Виртуальная функция, которая определена как член класса | Метод | Виртуальный метод |
Необходимо также знать о паре других различных терминов:
Термин C++ | Термин C# |
---|---|
Составной оператор | Блочный оператор |
lvalue | Переменное выражение |
В этом приложении будет по возможности использоваться терминология, соответствующая рассматриваемому языку.
Сравнение C# и C++
В этом разделе мы кратко рассмотрим общие различия и сходства между двумя языками.
Различия
Основные области, в которых C# отливается от C++, представлены ниже:
□ Использование компиляции. Код C++ обычно компилируется в язык ассемблера. C#, наоборот, компилируется в промежуточный язык( IL, intermediate language), который имеет некоторые сходства с байт-кодом Java. IL потоп преобразуется в собственный исполнимый код процессом оперативной компиляции (JIT) Создаваемый код IL хранится в файле или множестве файлов, называемом сборкой. Сборка по сути формирует единицу, в которой упакован код IL. Эта единица соответствует DLL или исполнимому файлу, создаваемому компилятором C++.
□ Управление памятью. C# создан с целью освободить разработчика от проблем, связанных управлением памятью. Это означает, что в C# не требуется явно удалять память, которая была динамически выделена из кучи, как это требуется делать в C++. Вместо этого сборщик мусора периодически очищает память. Для облегчения процесса C# накладывает некоторые ограничения на то, как можно использовать переменные, которые хранятся в куче и более строгие ограничения имеет C++ в отношении безопасности типов данных.
□ Указатели. Указатели используются в C# также, как и в C++, но только в тех блоках кода, которые специально помечены для использования указателей. Большей частью C# полагается на ссылки в стиле VB/Java для экземпляров классов, и язык был создан с таким расчетом, чтобы указатели не требовались так часто, как в C++.
□ Перезагрузка операторов. C# не позволяет явно перезагружать так много операторов, как C++. Это по большей степени связано с тем, что компилятор C# в некоторой степени автоматизирует эту задачу, используя любые доступные специальные перезагружаемые версии элементарных операторов (таких как =
) для автоматической реализации перезагруженных версий комбинированных операторов ( +=
).
Интервал:
Закладка: