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

Интервал:

Закладка:

Сделать

public interface IComparable

В данном варианте тип сравниваемых данных передается параметру Т в качестве аргумента типа. В силу этого объявление метода CompareTo()претерпевает изменения и выглядит так, как показано ниже.

int CompareTo(Т other)

В этом объявлении тип данных, которыми оперирует метод CompareTo(), может быть указан явным образом. Следовательно, интерфейс IComparableобеспечивает типовую безопасность. Именно по этой причине он теперь считается более предпочтительным в программировании на С#, чем интерфейс IComparable.

Интерфейс IEquatable

Интерфейс IEquatableреализуется в тех классах, где требуется определить порядок сравнения двух объектов на равенство их значений. В этом интерфейсе определен только один метод, Equals(), объявление которого приведено ниже.

bool Equals(Т other)

Этот метод возвращает логическое значение true, если значение вызывающего объекта оказывается равным значению другого объекта other , в противном случае — логическое значение false.

Интерфейс IEquatableреализуется в нескольких классах и структурах среды .NET Framework, включая структуры числовых типов и класс String. Для реализации интерфейса IEquatableобычно требуется также переопределять методы Equals(Object)и GetHashCode(), определенные в классе Object.

Интерфейс IConvertible

Интерфейс IConvertibleреализуется в структурах всех типов значений, Stringи DateTime. В нем определяются различные преобразования типов. Реализовывать этот интерфейс в создаваемых пользователем классах, как правило, не требуется.

Интерфейс ICloneable

Реализовав интерфейс ICloneable, можно создать все условия для копирования объекта. В интерфейсе ICloneableопределен только один метод, Clone(), объявление которого приведено ниже.

object Clone()

В этом методе создается копия вызывающего объекта, а конкретная его реализация зависит от способа создания копии объекта. Вообще говоря, существуют две разновидности копий объектов: полная и неполная. Если создается полная копия, то копия совершенно не зависит от оригинала. Так, если в исходном объекте содержится ссылка на другой объект О, то при его копировании создается также копия объекта О. А при создании неполной копии осуществляется копирование одних только членов, но не объектов, на которые эти члены ссылаются. Так, после создания неполной копии объекта, ссылающегося на другой объект О, копия и оригинал будут ссылаться на один и тот же объект О, причем любые изменения в объекте О будут оказывать влияние как на копию, так и на оригинал. Как правило, метод Clone()реализуется для получения полной копии. А неполные копии могут быть созданы с помощью метода MemberwiseClone(), определенного в классе Object.

Ниже приведен пример программы, в которой демонстрируется применение интерфейса ICloneable. В ней создается класс Test, содержащий ссылку на объект класса X. В самом классе Testиспользуется метод Clone()для создания полной копии.

// Продемонстрировать применение интерфейса ICloneable.

using System;

class X {

public int a;

public X(int x) { a = x; }

}

class Test : ICloneable {

public X o;

public int b;

public Test(int x, int y) {

o = new X(x);

b = y;

}

public void Show(string name) {

Console.Write("Значения объекта " + name + ": ");

Console.WriteLine("o.a: {0}, b: {1}", o.a, b);

}

// Создать полную копию вызывающего объекта,

public object Clone() {

Test temp = new Test(o.a, b);

return temp;

}

}

class CloneDemo {

static void Main() {

Test ob1 = new Test(10, 20);

ob1.Show("ob1");

Console.WriteLine("Сделать объект ob2 копией объекта ob1.");

Test ob2 = (Test)ob1.Clone();

ob2.Show("ob2");

Console.WriteLine("Изменить значение ob1.о.а на 99, " +

" а значение ob1.b — на 88.");

ob1.o.a = 99;

ob1.b = 88;

ob1.Show("ob1");

ob2.Show("ob2");

}

}

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

Значения объекта оb1: о.а: 10, b: 20

Сделать объект оb2 копией объекта оb1.

Значения объекта оb2: о.а: 10, b: 20

Изменить значение ob1.о.а на 99, а значение obl.b — на 88.

Значения объекта оb1: о.а: 99, b: 88

Значения объекта оb2: о.а: 10, b: 20

Как следует из результата выполнения приведенной выше программы, объект оb2является копией объекта оb1, но это совершенно разные объекты. Изменения в одном из них не оказывают никакого влияния на другой. Это достигается конструированием нового объекта типа Test, который выделяет новый объект типа X для копирования. При этом новому экземпляру объекта типа X присваивается такое же значение, как и у объекта типа X в оригинале.

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

// Сделать неполную копию вызывающего объекта,

public object Clone() {

Test temp = (Test) MemberwiseClone();

return temp;

}

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

Значения объекта ob1: о.а: 10, b: 20

Сделать объект оb2 копией объекта оb1.

Значения объекта оb2: о.а: 10, b: 20

Изменить значение ob1.о.а на 99, а значение obl.b — на 88.

Значения объекта ob1: о.а: 99, b:

88 Значения объекта оb2: о.а: 99, b: 20

Как видите, обе переменные экземпляра о в объектах оb1и оb2ссылаются на один и тот же объект типа X. Поэтому изменения в одном объекте оказывают влияние на другой. Но в то же время поля b типа intв каждом из них разделены, поскольку типы значений недоступны по ссылке.

Интерфейсы IFormatProvider и IFormattable

В интерфейсе IFormatProviderопределен единственный метод GetFormat(), который возвращает объект, определяющий форматирование данных в удобочитаемой форме текстовой строки. Ниже приведена общая форма метода GetFormat():

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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