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

Тут можно читать онлайн Герберт Шилдт - C# 4.0: полное руководство - бесплатно ознакомительный отрывок. Жанр: comp-programming, издательство ООО И.Д. Вильямс, год 2011. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    C# 4.0: полное руководство
  • Автор:
  • Жанр:
  • Издательство:
    ООО И.Д. Вильямс
  • Год:
    2011
  • Город:
    Москва -- Киев
  • ISBN:
    978-5-8459-1684-6
  • Рейтинг:
    3.93/5. Голосов: 141
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

C# 4.0: полное руководство - описание и краткое содержание, автор Герберт Шилдт, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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


Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

C# 4.0: полное руководство - читать онлайн бесплатно ознакомительный отрывок

C# 4.0: полное руководство - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Герберт Шилдт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Обратите также внимание на то, что в классе Gen2параметр типа Т не используется, а только передается вверх по иерархии базовому классу Gen. Это означает, что в производном классе следует непременно указывать параметры типа, требующиеся его обобщенному базовому классу, даже если этот производный класс не обязательно должен быть обобщенным.

Разумеется, в производный класс можно свободно добавлять его собственные параметры типа, если в этом есть потребность. В качестве примера ниже приведен вариант предыдущей иерархии классов, где в класс Gen2добавлен собственный параметр типа.

// Пример добавления собственных параметров типа в производный класс,

using System;

// Обобщенный базовый класс,

class Gen {

T ob; // объявить переменную типа Т

// Передать конструктору ссылку типа Т.

public Gen(T о) {

ob = о;

}

// Возвратить значение переменной ob.

public T GetOb() {

return ob;

}

}

// Класс, производный от класса Gen. В этом классе

// определяется второй параметр типа V.

class Gen2 : Gen {

V ob2;

public Gen2(T o, V o2) : base(o) {

ob2 = o2;

}

public V GetObj2() {

return ob2;

}

}

// Создать объект класса Gen2.

class GenHierDemo2 {

static void Main() {

// Создать объект класса Gen2 с параметрами

// типа string и int.

Gen2 < string, int > x =

new Gen2("Значение равно: ", 99);

Console.Write(x.GetOb());

Console.WriteLine(x.GetObj2());

}

}

Обратите внимание на приведенное ниже объявление класса Gen2 в данном варианте иерархии классов.

class Gen2 : Gen {

В этом объявлении Т — это тип, передаваемый базовому классу Gen; а V — тип, характерный только для производного класса Gen2. Он служит для объявления объекта оb2и в качестве типа, возвращаемого методом GetObj2(). В методе Main()создается объект класса Gen2с параметром Т типа stringи параметром V типа int. Поэтому код из приведенного выше примера дает следующий результат.

Значение равно: 99

Обобщенный производный класс

Необобщенный класс может быть вполне.законно базовым для обобщенного производного класса. В качестве примера рассмотрим следующую программу.

// Пример необобщенного класса в качестве базового для

// обобщенного производного класса.

using System;

// Необобщенный базовый класс,

class NonGen {

int num;

public NonGen(int i) {

num = i;

}

public int GetNum() {

return num;

}

}

// Обобщенный производный класс,

class Gen : NonGen {

T ob;

public Gen(T o, int i) : base(i) {

ob = o;

}

// Возвратить значение переменной ob.

public T GetOb() {

return ob;

}

}

// Создать объект класса Gen.

class HierDemo3 {

static void Main() {

// Создать объект класса Gen с параметром типа string.

Gen w = new Gen("Привет", 47);

Console.Write(w.GetOb() + " ");

Console.WriteLine(w.GetNum());

}

}

Эта программа дает следующий результат.

Привет 47

В данной программе обратите внимание на то, как класс Genнаследует от класса NonGenв следующем объявлении.

class Gen : NonGen {

Класс NonGenне является обобщенным, и поэтому аргумент типа для него не указывается. Это означает, что параметр Т, указываемый в объявлении обобщенного производного класса Gen, не требуется для указания базового класса NonGenи даже не может в нем использоваться. Следовательно, класс Gen наследует от класса NonGenобычным образом, т.е. без выполнения каких-то особых условий.

Переопределение виртуальных методов в обобщенном классе

В обобщенном классе виртуальный метод может быть переопределен таким же образом, как и любой другой метод. В качестве примера рассмотрим следующую программу, в которой переопределяется виртуальный метод GetOb().

// Пример переопределения виртуального метода в обобщенном классе,

using System;

// Обобщенный базовый класс,

class Gen {

protected T ob;

public Gen(T о) {

ob = о;

}

// Возвратить значение переменной ob.

// Этот метод является виртуальным.

public virtual T GetOb() {

Console.Write("Метод GetOb() из класса Gen" + " возвращает результат: ");

return ob;

}

}

// Класс, производный от класса Gen. В этом классе

// переопределяется метод GetOb().

class Gen2 : Gen {

public Gen2(T o) : base(o) { }

// Переопределить метод GetOb().

public override T GetOb() {

Console.Write("Метод GetOb() из класса Gen2" + " возвращает результат: ");

return ob;

}

}

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

class OverrideDemo {

static void Main() {

// Создать объект класса Gen с параметром типа int.

Gen iOb = new Gen(88);

// Здесь вызывается вариант метода GetOb() из класса Gen.

Console.WriteLine(iOb.GetOb());

//А теперь создать объект класса Gen2 и присвоить

// ссылку на него переменной iOb типа Gen.

iOb = new Gen2(99);

// Здесь вызывается вариант метода GetOb() из класса Gen2.

Console.WriteLine(iOb.GetOb());

}

}

Ниже приведен результат выполнения этой программы.

Метод GetOb() из класса Gen возвращает результат: 88

Метод GetOb() из класса Gen2 возвращает результат: 99

Как следует из результата выполнения приведенной выше программы, переопределяемый вариант метода GetOb()вызывается для объекта типа Gen2, а его вариант из базового класса вызывается для объекта типа Gen.

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

Интервал:

Закладка:

Сделать


Герберт Шилдт читать все книги автора по порядку

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




C# 4.0: полное руководство отзывы


Отзывы читателей о книге C# 4.0: полное руководство, автор: Герберт Шилдт. Читайте комментарии и мнения людей о произведении.


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

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