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

Интервал:

Закладка:

Сделать

В интерфейсе IComparableопределяется один метод.

int CompareTo(object obj)

В этом методе значение вызывающего объекта сравнивается со значением объекта, определяемого параметром obj. Если значение вызывающего объекта больше, чем у объекта obj, то возвращается положительное значение; если оба значения равны — нулевое значение, а если значение вызывающего объекта меньше, чем у объекта obj, — отрицательное значение.

Интерфейс IComparableявляется обобщенным вариантом интерфейса IComparable. Поэтому в нем определен следующий обобщенный вариант метода CompareTo().

int CompareTo(Т other)

Обобщенный вариант метода CompareTo()действует аналогично необобщенному его варианту. В нем значение вызывающего объекта также сравнивается со значением объекта, определяемого параметром other. Если значение вызывающего объекта больше, чем у объекта other, то возвращается положительное значение; если оба значения равны — нулевое значение, а если значение вызывающего объекта меньше, чем у объекта other, — отрицательное значение. Преимущество интерфейса IComparableзаключается в том, что он обеспечивает типовую безопасность, поскольку в этом случае тип обрабатываемых данных указывается явным образом, а следовательно, никакого приведения типа objectсравниваемого объекта к нужному типу не требуется. В качестве примера ниже приведена программа, в которой демонстрируются сортировка и поиск в массиве объектов определяемого пользователем класса.

// Отсортировать массив объектов и осуществить в нем поиск,

using System;

class MyClass : IComparable {

public int i;

public MyClass(int x) {

i = x;

}

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

public int CompareTo(MyClass v) {

return i - v.i;

}

public bool Equals(MyClass v) {

return i == v.i;

}

}

class SortDemo {

static void Main() {

MyClass[] nums = new MyClass[5];

nums[0] = new MyClass(5);

nums[1] = new MyClass(2);

nums[2] = new MyClass(3);

nums[3] = new MyClass(4);

nums[4] = new MyClass(1);

// Отобразить исходный порядок следования.

Console.Write("Исходный порядок следования: ");

foreach (MyClass о in nums)

Console.Write(о.i + " ");

Console.WriteLine();

// Отсортировать массив.

Array.Sort(nums);

// Отобразить порядок следования после сортировки.

Console.Write("Порядок следования после сортировки: ");

foreach (MyClass о in nums)

Console.Write(о.i + " ");

Console.WriteLine();

// Найти объект MyClass(2).

MyClass x = new MyClass(2);

int idx = Array.BinarySearch(nums, x);

Console.WriteLine("Индекс элемента массива с объектом MyClass(2): " + idx);

}

}

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

Исходный порядок следования: 5 2 3 4 1

Порядок следования после сортировки: 1 2 3 4 5

Индекс элемента массива с объектом MyClass(2): 1

При сортировке или поиске в массиве строк может возникнуть потребность явно указать способ сравнения символьных строк. Так, если массив будет сортироваться с использованием одних настроек культурной среды, а поиск в нем — с помощью других настроек, то во избежание ошибок, скорее всего, придется явно указать способ сравнения. Аналогичная ситуация возникает и в том случае, если требуется отсортировать массив символьных строк при настройках культурной среды, отличающихся от текущих. Для выхода из подобных ситуаций можно передать экземпляр объекта типа StringComparerпараметру типа IComparer, который поддерживается в целом ряде перегружаемых вариантов методов Sort()и BinarySearch().

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

ПРИМЕЧАНИЕ

Более подробно особенности сравнения строк рассматриваются в главе 22.

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

Класс StringComparerобъявляется в пространстве имен Systemи реализует, среди прочего, интерфейсы IComparerи IComparer<���Т>. Поэтому экземпляр объекта типа StringComparerможет быть передан в качестве аргумента параметру типа IComparer. Кроме того, в классе StringComparerопределен ряд доступных только для чтения свойств, возвращающих экземпляр объекта типа StringComparerи поддерживающих различные способы сравнения символьных строк. Все эти свойства перечислены ниже.

Свойство - Способ сравнения

public static StringComparer CurrentCulture {get; } -С учетом регистра и культурной среды

public static StringComparer CurrentCulturelgnoreCase {get; } -Без учета регистра, но с учетом культурной среды

public static StringComparer InvariantCulture {get; } -С учетом регистра и безотносительно к культурной среде

public static StringComparer InvariantCulturelgnoreCase {get; } -Без учета регистра и безотносительно к культурной среде

public static StringComparer Ordinal {get; } -Порядковое сравнение с учетом регистра

public static StringComparer OrdinallgnoreCase {get; } -Порядковое сравнение без учета регистра

Передавая явным образом экземпляр объекта типа StringComparer, можно совершенно однозначно определить порядок сортировки или поиска в массиве. Например, в приведенном фрагменте кода сортировка и поиск в массиве символьных строк осуществляется с помощью свойства StringComparer.Ordinal.

string[] strs = { "xyz", "one" , "beta", "Alpha" };

// ...

Array.Sort(strs, StringComparer.Ordinal);

int idx = Array.BinarySearch(strs, "beta", StringComparer.Ordinal);

Обращение содержимого массива

Иногда оказывается полезно обратить содержимое массива и, в частности, отсортировать по убывающей массив, отсортированный по нарастающей. Для такого обращения массива достаточно вызвать метод Reverse(). С его помощью можно обратить содержимое массива полностью или частично. Этот процесс демонстрируется в приведенной ниже программе.

// Обратить содержимое массива.

using System;

class ReverseDemo {

static void Main() {

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

// Отобразить исходный порядок следования.

Console.Write("Исходный порядок следования: ");

foreach(int i in nums)

Console.Write(i + " ");

Console.WriteLine();

// Обратить весь массив.

Array.Reverse(nums);

// Отобразить обратный порядок следования.

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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