Симон Робинсон - C# для профессионалов. Том II

Тут можно читать онлайн Симон Робинсон - C# для профессионалов. Том II - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Лори, год 2003. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    C# для профессионалов. Том II
  • Автор:
  • Жанр:
  • Издательство:
    Лори
  • Год:
    2003
  • Город:
    Москва
  • ISBN:
    5-85582-187-0
  • Рейтинг:
    4.88/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Симон Робинсон - C# для профессионалов. Том II краткое содержание

C# для профессионалов. Том II - описание и краткое содержание, автор Симон Робинсон, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
C# для профессионалов

Платформа .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# для профессионалов. Том II - читать книгу онлайн бесплатно, автор Симон Робинсон
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

С другой стороны, теперь нет ничего необычного в том, что программисты C++ используют какой-либо из различных классов оболочек массивов в стандартной библиотеке или в MFC, в основном для линейных массивов, чтобы получить тот же контроль границ и различные другие свойства, хотя в этом случае — без выигрыша в безопасности и производительности, связанных с возможностью анализа программы до ее выполнения.

Изменение размера массивов

Массивы C# являются динамическими, то есть можно определить число элементов в каждой размерности во время компиляции (также, как в динамически выделяемых массивах в C++). Однако невозможно изменить их размер после того, как были созданы их экземпляры. Если требуется это сделать, необходимо рассмотреть другие связанные с этим классы в пространстве имен System.Collectionsв библиотеке базовых классов, таких как System.Collections.ArrayList. Однако в этом отношении C# не отличается от C++. Обычные массивы C++ не допускают изменение размера, но существует ряд классов стандартной библиотеки, которые предоставляют это свойство.

Перечисления

В C# можно определить перечисление с помощью синтаксиса, аналогичного синтаксису C++.

// допустимо в C++ или C#

enum TypeOfBuilding {Shop, House, OfficeBlock, School};

Отметим, однако, что заключительная точка с запятой в C# не обязательна, так как определение перечисления в C# является фактически определением структуры, а определения структур не требуют заключительной точки с запятой.

// допустимо только в C#

enum TypeOfBuilding {Shop, House, OfficeBlock, School}

Однако в C# перечисление должно быть именованным, в то время как в C++ задание имени для перечисления является необязательным. Также как в C++, элементы перечисления в C# нумеруются от нуля в сторону увеличения, если только специально не определено, что элемент должен иметь определенное значение.

enum TypeOfBuilding {Shop, House=5, OfficeBlock, School = 10}

// Shop будет иметь значение 0, OfficeBlock будет иметь значение 6

Способ, с помощью которого происходит доступ к значениям элементов, отличается в C#, так как в C# необходимо определять имя перечисления.

Синтаксис C++:

TypeOfBuilding MyHouse = House;

Синтаксис C#:

TypeOfBuilding MyHouse = TypeOfBuilding.House;

Можно рассматривать это как недостаток, так как синтаксис очень велик, не это в действительности отражает тот факт, что перечисления являются в C# значительно более мощными. В C# каждое перечисление является полноценной структурой производной из System.Enum) и поэтому имеет некоторые методы. В частности, для любого перечисленного значения можно сделать следующее:

TypeOfBuilding MyHouse = TypeOfBuilding.House;

string Result = MyHouse.ToString(); // Result будет содержать "House"

Это почти невозможно сделать в C++.

В C# это делается и другим способом, с помощью статического метода Parse()класса System.Enum, хотя синтаксис будет чуть более запутанным

TypeOfВuilding MyHouse = (TypeOfBuilding)Enum.Parse(typeof(TypeOfBuilding), "House", true);

Enum.Parse()возвращает объектную ссылку и должен быть явно преобразован (распакован) обратно в соответствующий тип enum. Первым параметром в Parse()является объект System.Тyре, который описывает, какое перечисление должна представлять строка. Второй параметр является строкой, а третий параметр указывает, должен ли игнорироваться регистр символов. Вторая перегружаемая версия опускает третий параметр и не игнорирует регистр символов.

C# позволяет также выбрать описанный ниже тип данных, используемый для хранения enum:

enum TypeOfBuiding : short {Shop, House, OfficeBlock, School};

Если тип не указан, компилятор будет предполагать по умолчанию int.

Исключения

Исключения используются в C# таким же образом, как и в C++, кроме двух следующих различий:

□ C# определяет блок finally, который содержит код, всегда выполняющийся в конце блока tryнезависимо от того, порождалось ли какое-либо исключение. Отсутствие этого свойства C++ явилось причиной недовольства среди разработчиков C++. Блок finallyвыполняется, как только управление покидает блок catchили try, и содержит обычно код очистки выделенных в блоке tryресурсов.

□ В C++ класс, порожденный в исключении, может быть любым классом. C#, однако, требует, чтобы исключение было классом, производным от System.Exception.

Правила выполнения программы в блоках tryи catchидентичны в C++ и C#. Используемый синтаксис также одинаков, за исключением одного различия: в C# блок catch, который не определяет переменную для получения объекта исключения, обозначается самой инструкцией catch. Синтаксис C++:

catch (...) {

Синтаксис C#.

catch {

В C# этот вид инструкции catchможет быть полезен для перехвата исключений, которые порождаются кодом, написанным на других языках (и которые поэтому могут не быть производными от System.Exception, компилятор C# отметит ошибку, если попробовать определить такой объект-исключение, но это не имеет значения для других языков программирования).

Полный синтаксис для try…catch…finallyв C# выглядит следующим образом:

try {

// обычный код

} catch (MyException e) { // MyException выводится из System.Exception

// код обработки ошибки

}

// необязательные дополнительные блоки catch

finally {

// код очистки

}

Отметим, что блок finallyявляется необязательным. Также допустимо не иметь блоков catch, в этом случае конструкция try…finallyслужит просто способом обеспечения, чтобы код в блоке finallyвсегда выполнялся, когда происходит выход из блока try. Это может быть полезно, например, если блок tryсодержит несколько инструкций returnи требуется выполнить очистку ресурсов, прежде чем метод реально возвратит управление.

Указатели и небезопасный код

Указатели в C# используются почти таким же образом, как и в C++. Однако они могут объявляться и использоваться только в блоке небезопасного (ненадежного) кода. Любой метод можно объявить небезопасным ( unsafe):

public unsafe void MyMethod() {

Можно альтернативно объявить любой класс или структуру небезопасными и:

unsafe class MyClass {

Объявление класса или структуры ненадежными означает, что все члены рассматриваются как ненадежные. Можно также объявить любое поле-член (но не локальные переменные) как ненадежное, если имеется поле-член типа указателя:

private unsafe int* рХ;

Можно также пометить блочный оператор как ненадежный следующим образом:

unsafe {

// инструкции, которые используют указатели

}

Синтаксис для объявления, доступа, разыменования и выполнения арифметических операций с указателями такой же, как и в C++:

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Симон Робинсон читать все книги автора по порядку

Симон Робинсон - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




C# для профессионалов. Том II отзывы


Отзывы читателей о книге C# для профессионалов. Том II, автор: Симон Робинсон. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x