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

Здесь есть возможность читать онлайн «Симон Робинсон - C# для профессионалов. Том II» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 2003, ISBN: 2003, Издательство: Лори, Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

C# для профессионалов. Том II: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «C# для профессионалов. Том II»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

// BoxEX.cs

public class OverflowEX {

public static void Main(String[] args) {

int x = 10;

Object, obj = (Object)x;

Console.WriteLine(obj);

int у = (int)obj;

Console.WriteLine(y);

}

}

Другим эффективным способом C#, предназначенным для преобразования типов, является возможность определить специальные операторы преобразования. Определенные пользователем преобразования выполняются из типа данных в тип, а не из экземпляра в экземпляр, поэтому они должны быть статическими операциями. Можно использовать ключевое слово impliciteдля объявления определенных пользователем преобразований из одного типа в другой. Предположим, что имеются два класса Manи Car, которые полностью не связаны. Создадим определенное пользователем преобразование, которое переводит один класс в другой. Ниже приведен листинг Man.cs:

public class Man {

int arms, legs;

string name;

public Man(){}

public int Arms {

set {

arms = value;

}

get {

return arms;

}

}

public string Name {

set {

name = value;

}

get {

return name;

}

}

public int Legs {

set {

legs = value;

}

get {

return legs;

}

}

}

Как можно видеть из приведенного примера, класс Manимеет три свойства: можно задать или извлечь Legs, Arms, Name. Ниже представлен листинг класса Car:

public class Car {

int wheels, doors, headlights;

public Car(int wheels, int doors, int headlights) {

this.wheels = wheels;

this.doors = doors;

this.headlights = headlights;

}

}

He существует на самом деле определенных правил о том, что включать в реализацию специального преобразования. Необходимо, однако, сопоставлять как можно больше пар полей данных между двумя операндами. В случае данного примера поле Car.wheelбудет сопоставлено с Man.legs, а поле Car.doorsс Man.arms. Не существует поля в Car, которое представляет что-нибудь похожее на Man.Name, но это не мешает использовать его. Можно, скажем, сопоставить Car.headlightsс длиной строки, которая хранится в Man.name. Любая реализация, которая имеет смысл для программиста, будет приемлема. В этом случае Man.nameне сопоставляется с Car.headlights, вместо этого для headlightsжестко кодируется 2, когда делается преобразование, и полностью отбрасывается Man.name. Следующий код содержит модификацию класса Car:

public class Car {

int wheels, doors, headlights;

public Car(int wheels, int doors, int headlights) {

this.wheels = wheels;

this.doors = doors;

this.headlight = headlights;

}

public static implicit operator Car(Man man) {

return new Car(man.Legs, man.Arms, 2);

}

public static explicit operator(Car car) {

Man man = new Man();

man.Arms = car.doors;

man.Legs = car.wheels;

man.Name = "john";

return man;

}

}

Мы добавим также переопределенные версии для методов ToString()обоих классов, чтобы вывести содержимое объекта Car. Это делается так:

// для Man.cs

public override string ToString() {

return "[arms:" + arms + "|legs:" + legs + "|name:" + name + "]";

}

// для Car.cs

public override string ToString() {

return "[wheels:" + wheels + "|doors:" + doors + "|headlights:" + headlights + "]";

}

Листинг кода ниже показывает использование специального преобразования:

// BoxEx.cs

public class OverflowEX {

public static void Main(String[] args) {

Car car = new Car (4, 5, 2);

Man man = (Man) car; // использует явное специальное преобразование

Console.WriteLine("Man - ");

Console.WriteLine(man);

Console.WriteLine();

Car car2 = man; // использует неявное специальное преобразование

Console.WriteLine("Car - ");

Console.WriteLine(car2);

}

}

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

Man -

[arms:5|legs:4|name:john]

Car -

[wheels:4|doors:5|headlights:2]

Перезагрузка

В начале важно отметить, что перезагрузка операторов не определена в CLS. Однако CLS обращается к ней, потому что языки, обеспечивающие ее функциональность, делают это способом, который могут понять другие языки. Таким образом, языки, которые не поддерживают перезагрузку операторов, все-таки имеют доступ к базовой функциональности. Java является примером языка, который не поддерживает перезагрузку операторов, — ни одна из концепций, рассмотренных в этом разделе, не может ее использовать. Спецификация среды .NET включает ряд рекомендаций для проведения перезагрузки операторов.

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

Интервал:

Закладка:

Сделать

Похожие книги на «C# для профессионалов. Том II»

Представляем Вашему вниманию похожие книги на «C# для профессионалов. Том II» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


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

Обсуждение, отзывы о книге «C# для профессионалов. Том II» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x