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


Авторские права

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

Здесь можно скачать бесплатно "Герберт Шилдт - C# 4.0: полное руководство" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование, издательство ООО "И.Д. Вильямс", год 2011. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Герберт Шилдт - C# 4.0: полное руководство
Рейтинг:
Название:
C# 4.0: полное руководство
Издательство:
ООО "И.Д. Вильямс"
Год:
2011
ISBN:
978-5-8459-1684-6
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

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

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "C# 4.0: полное руководство"

Описание и краткое содержание "C# 4.0: полное руководство" читать бесплатно онлайн.



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


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






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

  public T GetOb() {

    return ob;

  }

}


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

class Gen2<T> : Gen<T> {

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

    // ...

  }

}


class GenHierDemo {

  static void Main() {

    Gen2<string> g2 = new Gen2<string>("Привет");

    Console.WriteLine(g2.GetOb());

  }

}


В этой иерархии класс Gen2 наследует от обобщенного класса Gen. Обратите внимание на объявление класса Gen2 в следующей строке кода.


class Gen2<T> : Gen<T> {


Параметр типа Т указывается в объявлении класса Gen2 и в то же время передается классу Gen. Это означает, что любой тип, передаваемый классу Gen2, будет передаваться также классу Gen. Например, в следующем объявлении:


Gen2<string> g2 = new Gen2<string>("Привет");


параметр типа string передается классу Gen. Поэтому переменная ob в той части класса Gen2, которая относится к классу Gen, будет иметь тип string.

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

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


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

using System;


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

class Gen<T> {

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


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

  public Gen(T о) {

    ob = о;

  }


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

  public T GetOb() {

    return ob;

  }

}


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

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

class Gen2<T, V> : Gen<T> {

  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<string, int>("Значение равно: ", 99);


    Console.Write(x.GetOb());

    Console.WriteLine(x.GetObj2());

  }

}


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


class Gen2<T, V> : Gen<T> {


В этом объявлении Т — это тип, передаваемый базовому классу 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<T> : 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<String> w = new Gen<String>("Привет", 47);


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

    Console.WriteLine(w.GetNum());

  }

}


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


Привет 47


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


class Gen<T> : NonGen {


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


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

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


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

using System;


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

class Gen<T> {

  protected T ob;


  public Gen(T о) {

    ob = о;

  }


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

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

  public virtual T GetOb() {


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

    return ob;

  }

}


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

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

class Gen2<T> : Gen<T> {

  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<int> iOb = new Gen<int>(88);


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

    Console.WriteLine(iOb.GetOb());


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

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


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

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

Книги похожие на "C# 4.0: полное руководство" читать онлайн или скачать бесплатно полные версии.


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

Все книги автора Герберт Шилдт

Герберт Шилдт - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

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

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

  1. BOT20.02.2021, 13:02
    сКОРО КУПЛЮ
А что Вы думаете о книге? Оставьте Ваш отзыв.