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

Интервал:

Закладка:

Сделать

select new { Name = item.Name,

InStock = entry.InStock };

Он возвращает объект анонимного типа с двумя доступными только для чтения свойствами: Nameи InStock. Этим свойствам присваиваются наименование товара и состояние его наличия на складе. Благодаря применению анонимного типа необходимость в упоминавшемся выше классе Tempотпадает.

Обратите также внимание на цикл foreach, в котором выполняется запрос. Теперь переменная шага этого цикла объявляется с помощью ключевого слова var. Это необходимо потому, что у типа объекта, хранящегося в переменной inStockList, нет имени. Данная ситуация послужила одной из причин, по которым в C# были внедрены неявно типизированные переменные, поскольку они нужны для поддержки анонимных типов.

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

select new { item.Name, entry.InStock };

В данном примере имена свойств остаются такими же, как и прежде, а компилятор автоматически "проецирует" идентификаторы Nameи InStock, превращая их в свойства анонимного типа. Этим свойствам присваиваются прежние значения, обозначаемые item.Nameи entry.InStockсоответственно.

Создание группового объединения

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

В приведенном ниже примере программы групповое объединение используется для составления списка, в котором различные транспортные средства (автомашины, суда и самолеты) организованы по общим для них категориям транспорта: наземного, морского, воздушного и речного. В этой программе сначала создается класс Transport, связывающий вид транспорта с его классификацией. Затем в методе Main()формируются две входные последовательности. Первая из них представляет собой массив символьных строк, содержащих названия общих категорий транспорта: наземного, морского, воздушного и речного, а вторая — массив объектов типа Transport, инкапсулирующих различные транспортные средства. Полученное в итоге групповое объединение используется для составления списка транспортных средств, организованных по соответствующим категориям.

// Продемонстрировать применение простого группового объединения.

using System;

using System.Linq;

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

// например поезда, с общей классификацией транспорта:

// наземного, морского, воздушного или речного,

class Transport {

public string Name { get; set; }

public string How { get; set; }

public Transport(string n, string h) {

Name = n;

How = h;

}

}

class GroupJoinDemo {

static void Main() {

// Массив классификации видов транспорта,

string[] travelTypes = {

"Воздушный",

"Морской",

"Наземный",

"Речной",

};

// Массив видов транспорта.

Transport[] transports = {

new Transport("велосипед", "Наземный"),

new Transport ("аэростат", "Воздушный"),

new Transport("лодка", "Речной"),

new Transport("самолет", "Воздушный"),

new Transport("каноэ", "Речной"),

new Transport("биплан", "Воздушный"),

new Transport("автомашина", "Наземный"),

new Transport("судно", "Морской"),

new Transport("поезд", "Наземный")

};

// Сформировать запрос, в котором групповое

// объединение используется для составления списка

// видов транспорта по соответствующим категориям,

var byHow = from how in travelTypes

join trans in transports

on how equals trans.How

into lst

select new { How = how, Tlist = lst };

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

foreach(var t in byHow) {

Console.WriteLine("К категории <{0} транспорт> относится:", t.How);

foreach(var m in t.Tlist)

Console.WriteLine(" " + m.Name);

Console.WriteLine();

}

}

}

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

К категории <���Воздушный транспорт> относится:

аэростат

самолет

биплан

К категории <���Морской транспорт> относится:

судно

К категории <���Наземный транспорт> относится:

велосипед

автомашина

поезд

К категории <���Речной транспорт> относится:

лодка

каноэ

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

var byHow = from how in travelTypes

join trans in transports

on how equals trans.How

into 1st

select new { How = how, Tlist = 1st };

Этот запрос формируется следующим образом. В операторе fromиспользуется переменная диапазона howдля охвата всего массива travelTypes. Напомним, что массив travelTypesсодержит названия общих категорий транспорта: воздушного, наземного, морского и речного. Каждый вид транспорта объединяется в операторе joinсо своей категорией. Например, велосипед, автомашина и поезд объединяются с наземным транспортом. Но благодаря оператору intoдля каждой категории транспорта в операторе joinсоставляется список видов транспорта, относящихся к данной категории. Этот список сохраняется в переменной lst. И наконец, оператор selectвозвращает объект анонимного типа, инкапсулирующий каждое значение переменной how(категории транспорта) вместе со списком видов транспорта. Именно поэтому для вывода результатов запроса требуются два цикла foreach.

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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