Герберт Шилдт - C# 4.0 - полное руководство

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

C# 4.0: полное руководство: краткое содержание, описание и аннотация

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

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки.
Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

C# 4.0: полное руководство — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «C# 4.0: полное руководство», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

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

Интервал:

Закладка:

Сделать

Несмотря на свою ковариантность по отношению к обобщенному типу Т, интерфейс IMyCoVarGenIFреализуется аналогично любому другому обобщенному интерфейсу. Ниже приведен пример реализации этого интерфейса в классе MyClass.

// Реализовать интерфейс IMyCoVarGenIF.

class MyClass : IMyCoVarGenIF {

T obj;

public MyClass(T v) {

obj = v;

}

public T GetObject() {

return obj;

}

}

Обратите внимание на то, что ключевое слово outне указывается еще раз в выражении, объявляющем реализацию данного интерфейса в классе MyClass. Это не только не нужно, но и вредно, поскольку всякая попытка еще раз указать ключевое слово out будет расцениваться компилятором как ошибка.

А теперь рассмотрим следующую простую реализацию иерархии классов.

// Создать простую иерархию классов,

class Alpha {

string name;

public Alpha(string n) { name = n; }

public string GetName() { return name; }

// ...

}

class Beta : Alpha {

public Beta(string n) : base (n) { }

// ...

}

Как видите, класс Beta является производным от класса Alpha.

С учетом всего изложенного выше, следующая последовательность операций будет считаться вполне допустимой.

// Создать ссылку из интерфейса IMyCoVarGenIF на объект типа MyClass.

// Это вполне допустимо как при наличии ковариантности, так и без нее.

IMyCoVarGenIF AlphaRef =

new MyClass(new Alpha("Alpha #1"));

Console.WriteLine("Имя объекта, на который ссылается переменная AlphaRef: " +

AlphaRef.GetObject().GetName());

//А теперь создать объект MyClass и присвоить его переменной AlphaRef.

// *** Эта строка кода вполне допустима благодаря ковариантности. ***

AlphaRef = new MyClass(new Beta("Beta #1"));

Console.WriteLine("Имя объекта, на который теперь ссылается " +

"переменная AlphaRef: " + AlphaRef.GetObject().GetName());

Прежде всего, переменной AlphaRefтипа IMyCoVarGenIFв этом фрагменте кода присваивается ссылка на объект типа MyClass. Это вполне допустимая операция, поскольку в классе MyClassреализуется интерфейс IMyCoVarGenIF, причем и в том, и в другом в качестве аргумента типа указывается Alpha. Далее имя объекта выводится на экран при вызове метода GetName()для объекта, возвращаемого методом GetObject(). И эта операция вполне допустима, поскольку Alpha— это и тип, возвращаемый методом GetName(), и обобщенный тип Т. После этого переменной AlphaRefприсваивается ссылка на экземпляр объекта типа MyClass, что также допустимо, потому что класс Beta является производным от класса Alpha, а обобщенный тип Т — ковариантным в интерфейсе IMyCoVarGenIF. Если бы любое из этих условий не выполнялось, данная операция оказалась бы недопустимой.

Ради большей наглядности примера вся рассмотренная выше последовательность операций собрана ниже в единую программу.

// Продемонстрировать ковариантность в обобщенном интерфейсе,

using System;

// Этот обобщенный интерфейс поддерживает ковариантность.

public interface IMyCoVarGenIF {

Т GetObject();

}

// Реализовать интерфейс IMyCoVarGenIF.

class MyClass : IMyCoVarGenIF {

T obj;

public MyClass(T v) { obj = v; }

public T GetObject() { return obj; }

}

// Создать простую иерархию классов,

class Alpha {

string name;

public Alpha(string n) { name = n; }

public string GetName() { return name; }

// ...

}

class Beta : Alpha {

public Beta(string n) : base(n) { }

// ...

}

class VarianceDemo {

static void Main() {

// Создать ссылку из интерфейса IMyCoVarGenIF на объект типа MyClass.

// Это вполне допустимо как при наличии ковариантности, так и без нее.

IMyCoVarGenIF AlphaRef =

new MyClass(new Alpha("Alpha #1"));

Console.WriteLine("Имя объекта, на который ссылается переменная " +

"AlphaRef: " + AlphaRef.GetObject().GetName());

//А теперь создать объект MyClass и присвоить его // переменной AlphaRef.

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

Интервал:

Закладка:

Сделать

Похожие книги на «C# 4.0: полное руководство»

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


Отзывы о книге «C# 4.0: полное руководство»

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