Герберт Шилдт - 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: полное руководство - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Герберт Шилдт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

// Реализовать обобщенный интерфейс IEquatable.

public bool Equals(MyClass other) {

return Val == other.Val;

}

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

public override bool Equals(Object obj) {

if (obj is MyClass)

return Equals((MyClass)obj);

return false;

}

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

public override int GetHashCode() {

return Val.GetHashCode();

}

}

class CompareDemo {

// Требуется обобщенный интерфейс IEquatable.

public static bool IsIn(T what, T[] obs)

where T : IEquatable {

foreach (T v in obs)

if (v.Equals(what)) // Применяется метод Equals()

return true;

return false;

}

// Требуется обобщенный интерфейс IComparable. В данном методе

// предполагается, что массив отсортирован. Он возвращает логическое

// значение true, если значение параметра what оказывается среди элементов

// массива, передаваемых параметру obs.

public static bool InRange(T what, T[] obs) where T : IComparable {

if (what.CompareTo(obs[0]) < 0 ||

what.CompareTo(obs[obs.Length - 1]) > 0)

return false;

return true;

}

// Продемонстрировать операции сравнения,

static void Main() {

// Применить метод Isln() к данным типа int.

int[] nums = { 1, 2, 3, 4, 5 };

if (IsIn(2, nums))

Console.WriteLine("Найдено значение 2.");

if (IsIn(99, nums))

Console.WriteLine("He подлежит выводу.");

// Применить метод Isln() к объектам класса MyClass.

MyClass[] mcs = { new MyClass(1), new MyClass(2),

new MyClass(3), new MyClass(4) };

if (IsIn(new MyClass(3), mcs))

Console.WriteLine("Найден объект MyClass(3).");

if (IsIn(new MyClass(99), mcs))

Console.WriteLine("He подлежит выводу.");

// Применить метод InRange() к данным типа int.

if (InRange(2, nums))

Console.WriteLine("Значение 2 находится в границах массива nums.");

if (InRange(1, nums))

Console.WriteLine("Значение 1 находится в границах массива nums.");

if (InRange(5, nums))

Console.WriteLine("Значение 5 находится в границах массива nums.");

if (!InRange(0, nums))

Console.WriteLine("Значение 0 HE находится в границах массива nums.");

if (!InRange(6, nums))

Console.WriteLine("Значение 6 HE находится в границах массива nums.");

// Применить метод InRange() к объектам класса MyClass.

if (InRange(new MyClass(2), mcs))

Console.WriteLine("Объект MyClass(2) находится в границах массива nums.");

if (InRange(new MyClass(1), mcs))

Console.WriteLine("Объект MyClass(1) находится " +

"в границах массива nums.");

if (InRange(new MyClass(4), mcs))

Console.WriteLine("Объект MyClass(4) находится " +

"в границах массива nums.");

if (!InRange(new MyClass(0), mcs))

Console.WriteLine("Объект MyClass(0) HE " +

"находится в границах массива nums.");

if (!InRange(new MyClass(5), mcs))

Console.WriteLine("Объект MyClass(5) HE " +

"находится в границах массива nums.");

}

}

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

Найдено значение 2.

Найден объект MyClass (3) .

Значение 2 находится в границах массива nums.

Значение 1 находится в границах массива nums.

Значение 5 находится в границах массива nums.

Значение 0 НЕ находится в границах массива nums

Значение 6 НЕ находится в границах массива nums

Объект MyClass(2) находится в границах массива nums.

Объект MyClass(1) находится в границах массива nums.

Объект MyClass(4) находится в границах массива nums.

Объект MyClass(0) НЕ находится в границах массива nums.

Объект MyClass(5) НЕ находится в границах массива nums.

-----------------------------------

ПРИМЕЧАНИЕ

Если параметр типа обозначает ссылку или ограничение на базовый класс, то к экземплярам объектов, определяемых таким параметром типа, можно применять операторы == и ! =, хотя они проверяют на равенство только ссылки. А для сравнения значений придется реализовать интерфейс IComparableили же обобщенные интерфейсы IComparableи IEquatable.

-----------------------------------

Иерархии обобщенных классов

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

Применение обобщенного базового класса

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

// Простая иерархия обобщенных классов,

using System;

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

class Gen {

T ob;

public Gen(T о) {

ob = о;

}

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

public T GetOb() {

return ob;

}

}

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

class Gen2 : Gen {

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

// ...

}

}

class GenHierDemo {

static void Main() {

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

Console.WriteLine(g2.GetOb());

}

}

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

class Gen2 : Gen {

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

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

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

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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