» » » Герберт Шилдт - 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#.Введите сюда краткую аннотацию






Рассмотрим другой пример. Но сначала приведем еще раз запрос из представленного ранее примера применения оператора join.


var inStockList = from item in items

  join entry in statusList

    on item.ItemNumber equals entry.ItemNumber

  select new Temp(item.Name, entry.InStock);


По этому запросу формируется последовательность, состоящая из объектов, инкапсулирующих наименование товара и состояние его запасов на складе. Вся эта информация получается путем объединения двух источников данных: items и statusList. Ниже приведен переделанный вариант данного запроса, в котором вместо синтаксиса, предусмотренного в C# для запросов, используется метод запроса Join().


// Использовать метод запроса Join() для составления списка

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

var inStockList = items.Join(statusList,

                             kl => kl.ItemNumber,

                             k2 => k2.ItemNumber,

                        (kl, k2) => new Temp(kl.Name, k2.InStock) );


В данном варианте именованный класс Temp используется для хранения результирующего объекта, но вместо него можно воспользоваться анонимным типом. Такой вариант запроса приведен ниже.


var inStockList = items.Join(statusList,

                            kl => kl.ItemNumber,

                            k2 => k2.ItemNumber,

                        (kl, k2) => new { kl.Name, k2.InStock} );


Синтаксис запросов и методы запроса

Как пояснялось в предыдущем разделе, запросы в C# можно формировать двумя способами, используя синтаксис запросов или методы запроса. Любопытно, что оба способа связаны друг с другом более тесно, чем кажется, глядя на исходный код программы. Дело в том, что синтаксис запросов компилируется в вызовы методов запроса. Поэтому код


where х < 10


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


Where(х => х < 10)


Таким образом, оба способа формирования запросов в конечном итоге сходятся на одном и том же.

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


Дополнительные методы расширения, связанные с запросами

Помимо методов, соответствующих операторам запроса, поддерживаемым в С#, име-ется ряд других методов расширения, связанных с запросами и зачастую оказывающих помощь в формировании запросов. Эти методы предоставляются в среде .NET Framework и определены для интерфейса IEnumerable<T> в классе Enumerable. Ниже приведены наиболее часто используемые методы расширения, связанные с запросами. Многие из них могут перегружаться, поэтому они представлены лишь в самой общей форме.


Метод            Описание


All(predicate)   Возвращает логическое значение true,

                 если все элементы в последовательности

                 удовлетворяют условию, задаваемому параметром

                 predicate

Any(predicate)   Возвращает логическое значение true, если

                 любой элемент в последовательности удовлетворяет

                 условию, задаваемому параметром predicate

Average()        Возвращает среднее всех значений в числовой

                 последовательности

Contains(value)  Возвращает логическое значение true, если

                 в последовательности содержится указанный объект

Count()          Возвращает длину последовательности, т.е.

                 количество составляющих ее элементов

First()          Возвращает первый элемент в последовательности

Last()           Возвращает последний элемент в последовательности

Max()            Возвращает максимальное значение в

                 последовательности

Min()            Возвращает минимальное значение в

                 последовательности

Sum()            Возвращает сумму значений в числовой

                 последовательности


Метод Count() уже демонстрировался ранее в этой главе. А в следующей программе демонстрируются остальные методы расширения, связанные с запросами.


// Использовать ряд методов расширения, определенных в классе Enumerable.

using System;

using System.Linq;

class ExtMethods {

  static void Main() {

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


    Console.WriteLine("Минимальное значение равно " + nums.Min());

    Console.WriteLine("Максимальное значение равно " + nums.Max());

    Console.WriteLine("Первое значение равно " + nums.First());

    Console.WriteLine("Последнее значение равно " + nums.Last());

    Console.WriteLine("Суммарное значение равно " + nums.Sum());

    Console.WriteLine("Среднее значение равно " + nums.Average());

    if(nums.All(n => n > 0))

      Console.WriteLine("Все значения больше нуля.");

    if(nums.Any(n => (n % 2) == 0))

      Console.WriteLine("По крайней мере одно значение является четным.");

    if(nums.Contains(3))

      Console.WriteLine("Массив содержит значение 3.");

  }

}


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


Минимальное значение равно 1

Максимальное значение равно 5

Первое значение равно 3

Последнее значение равно 4

Суммарное значение равно 15

Среднее значение равно 3

Все значения больше нуля.

По крайней мере одно значение является четным

Массив содержит значение 3.


Методы расширения, связанные с запросами, можно также использовать в самом запросе, основываясь на синтаксисе запросов, предусмотренном в С#. И в действительности это делается очень часто. Например, метод Average() используется в приведенной ниже программе для получения последовательности, состоящей только из тех значений, которые оказываются меньше среднего всех значений в массиве.


// Использовать метод Average() вместе с синтаксисом запросов.

using System;

using System.Linq;


class ExtMethods2 {

  static void Main() {

    int[] nums = { 1, 2, 4, 8, 6, 9, 10, 3, 6, 7 };


    var ItAvg = from n in nums

        let x = nums.Average()

        where n < x

        select n;


    Console.WriteLine("Среднее значение равно " + nums.Average());

    Console.Write("Значения меньше среднего: ");

    // Выполнить запрос и вывести его результаты,

    foreach(int i in ItAvg) Console.Write(i + " ");


    Console.WriteLine();

  }

}


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


Среднее значение равно 5.6

Значения меньше среднего: 1 2 4 3


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


var ItAvg = from n in nums

    let x = nums.Average()

    where n < x

    select n;


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

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

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


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

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

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

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

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

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

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