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

Интервал:

Закладка:

Сделать

private Day(String Day) {internal = Day;} // закрытый конструктор

public static final Day MONDAY = new Day("MONDAY");

public static final Day TUESDAY = new Day("TUESDAY");

public static final Day WEDNESDAY = new Day("WEDNESDAY");

public static final Day THURSDAY = new Day("THURSDAY");

public static final Day FRIDAY = new Day("FRIDAY");

}

Как можно видеть из приведенного выше примера, перечисленные константы связаны не с примитивными типами, а с объектными ссылками. Также, поскольку класс определен как final, то нельзя создать его подклассы, следовательно, никакие другие классы не могут из него создаваться. Конструктор отмечен как закрытый, поэтому другие методы не могут использовать класс для образования новых объектов. Единственные объекты, которые будут созданы для этого класса, это статические объекты, которые класс формирует для себя при первой ссылке на класс.

Можно согласиться с тем, что хотя концепция достаточно простая, обход включает развитую технику и она может не сразу стать понятной новичку, в конце концов нам требуется только список констант; C#, в противоположность, предоставляет встроенную поддержку перечислении, которая обеспечивает также безопасность типов. Чтобы объявить в C# перечисление, используется ключевое слово enum. В своей простейшей форме enumможет выглядеть как следующий код:

public enum Status {

Working,

Complete,

BeforeBegin

}

В приведенном выше случае первое значение равно 0 и enumувеличивает значения. Completeбудет 1 и т.д. Если по какой-то причине требуется, чтобы enumпредставлял другие значения, можно сделать это, присваивая такие значения следующим образом:

public enum Status {

Working = 131,

Complete = 129,

BeforeBegin = 132

}

Имеется также возможность использовать другие числовые целые типы 'наследуя' от long, shortили byte. intвсегда является типом по умолчанию. Эта концепция проиллюстрирована ниже:

public enum Status : int {

Working,

Complete,

BeforeBegin

}

public enum SmallStatus : byte {

Working,

Complete,

BeforeBegin

}

public enum BigStatus : long {

Working,

Complete,

BeforeBegin

}

Обратите внимание, что существует большое различие между этими тремя перечислениями, связанное напрямую с размером типа данных, от которого они наследуют. byteв C#, например, может содержать 1 байт памяти. Это означает, что SmallStatusне может с одержать более 255 констант или задать значение любой своей константы больше 255. Следующий листинг показывает, как можно использовать оператор sizeof()для идентификации различий между версиями Status:

int х = sizeof(Status);

int у = sizeof(SmallStatus);

int Z = sizeof(BigStatus);

Console.WriteLine("Regular size:\t{0}\nSmall size \t{1}\nLarge size:\t{2}", x, y, z);

После компиляции листинг создаст результаты, показанные ниже:

Regular size: 4

Small size: 1

Large size: 8

Структуры

Одним из основных различий между структурой C# (идентифицируемой ключевым словом struct) и классом является то, что то умолчанию structпередается посредством значения, в то время как объект передается по ссылке. Как хорошо известно, объекты создаются в куче, в то время как переменные, которые на них ссылаются, хранятся в стеке. Структуры, со своей стороны, создаются и хранятся в стеке. Их аналога в Java не существует. Структуры имеют конструкторы и методы, у них могут быть индексаторы, свойства, операторы и даже вложенные типы. С помощью struсtсоздаются типы данных, которые ведут себя таким же образом, как встроенные типы. Ниже приведен пример использования структур:

public struct WroxInt {

int internalVal;

private WroxInt(int x) {

internalVal = x;

}

public override string ToString() {

return Int.ToString(internalVal);

}

public static impicit operator WroxInt(int x) {

return new WroxInt(x);

}

}

public static void UseWroxInt() {

WroxInt wi = 90;

Console.WriteLine(wi);

}

Этот пример показывает типы, которыми владеют мощные структуры. WroxIntиспользуется почти так же, как и встроенный тип int. Как известно, не существует способа сделать что-нибудь подобное в Java. Ряд других достоинств и ограничений, связанных с использованием структур, представлен ниже:

structнельзя наследовать от другой structили от класса.

structне является базой для класса

□ Хотя structможет oбъявлять конструкторы, эти конструкторы должны получать не меньше одного аргумента.

□ Члены structне могут иметь инициализаторов.

□ Возможно создание экземпляра structбез использования ключевого слова new.

structможет реализовывать интерфейсы.

Атрибуты используются со структурами чтобы добавить им дополнительную мощь и гибкость. Атрибут StructLayoutв пространстве имен System.Runtime.InteropServices, например, применяется для определения компоновки полей в struct. Это свойство подходит и для создания структуры, аналогичной по функциональности unionв С/C++, unionявляется типом данных, члены которого находятся в одном блоке памяти. Он может использоваться для хранения значений различных типов в одном блоке памяти. unionгодится и в том случае, когда неизвестно, каким будет тип полученных значений. Конечно, никакого рeaльного преобразования не происходит, фактически не существует никакие базовых проверок допустимости данных. Один и тот же набор битов интерпретируется различным образом. Рассмотрим пример того, как unionсоздается с помощью struct:

[StructLayout(LayoutKind.Explicit)]

public struct Variant {

[FieldOffset(0)] public int intVal;

[FieldOffset(0)] public string stringVal;

[FieldOffset(0)] public decimal decVal;

[FieldOffset(0)] public float floatVal;

[FieldOffset(0)] public char charVal;

}

Атрибут FieldOffset, применяемый к полям, используется для задания физического расположения указанного поля. Задание начальной точки каждого поля как 0 гарантирует, что любое сохранение данных в одном поле перезапишет практически любые данные, которые там находятся. Отсюда следует, что общий размер полей равен размеру наибольшего поля, в данном случае decimal.

Ссылочные типы

Ссылочные типы хранят ссылку на данные, которые существуют в куче. Только адреса памяти хранимых объектов сохраняются в стеке. Тип объекта, массивы, интерфейсы тип класса и делегаты являются ссылочными типами. Объекты, классы и отношения между ними не отличаются в Java и C#. Интерфейсы и их использование также похожи в обоих языках. Одно из основных различий, которое, вероятно, уже встречалось, состоит в том, что C# не имеет ключевых слов extendsи implements. Оператор двоеточия ( :) заменяет оба ключевых слова Java, и, как было показано ранее, директива usingаналогична инструкции Java import. Строки тоже используются одинаково в C# и Java. C# вводит также новый тип ссылочного типа называемого делегатом. Делегаты представляют безопасную, с точки зрения типов, версию указателей функций. Они будут рассмотрены позже в этой главе.

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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