books-read.com
books-read.com » Компьютеры и Интернет » Базы данных » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Наш ресурс дает возможность бесплатно читать книгу онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Жанр: Базы данных . Сайт books-read.com дает возможность читать полную версию книги без регистрации и sms. Все книги онлайн, не надо качать fb2, epub, txt.
Добавить книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю в приложение ЧИТАТЬ КНИГУ ОФЛАЙН в приложении ios/android
Перейти на страницу:

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

IEnumerable<T>
расширяет
IEnumerable
. В табл. 10.4 описаны основные обобщенные интерфейсы, с которыми вы столкнетесь во время работы с обобщенными классами коллекций.

Язык программирования C#9 и платформа .NET5 - _075.png

В пространстве имен

System.Collections.Generic
также определены классы, реализующие многие из указанных основных интерфейсов. В табл. 10.5 описаны часто используемые классы из этого пространства имен, реализуемые ими интерфейсы, а также их базовая функциональность.

Язык программирования C#9 и платформа .NET5 - _076.png

В пространстве имен

System.Collections.Generic
также определены многие вспомогательные классы и структуры, которые работают в сочетании со специфическим контейнером. Например, тип
LinkedListNode<T>
представляет узел внутри обобщенного контейнера
LinkedList<T>
, исключение
KeyNotFoundException
генерируется при попытке получения элемента из коллекции с применением несуществующего ключа и т.д. Подробные сведения о пространстве имен
System.Collections.Generic
доступны в документации по .NET Core.

В любом случае следующая ваша задача состоит в том, чтобы научиться использовать некоторые из упомянутых классов обобщенных коллекций. Тем не менее, сначала полезно ознакомиться со средством языка C# (введенным в версии .NET 3.5), которое упрощает заполнение данными обобщенных (и необобщенных) коллекций.

Синтаксис инициализации коллекций

В главе 4 вы узнали о синтаксисе инициализации массивов, который позволяет устанавливать элементы новой переменной массива во время ее создания. С ним тесно связан синтаксис инициализации коллекций. Данное средство языка C# позволяет наполнять многие контейнеры (такие как

ArrayList
или
List<T>
) элементами с применением синтаксиса, похожего на тот, который используется для наполнения базовых массивов. Создайте новый проект консольного приложения .NET Core по имени
FunWithCollectionInitialization
. Удалите код, сгенерированный в
Program.cs
, и добавьте следующие операторы
using
:

using System;

using System.Collections;

using System.Collections.Generic;

using System.Drawing;

На заметку! Синтаксис инициализации коллекций может применяться только к классам, которые поддерживают метод

Add()
, формально определяемый интерфейсами
ICollection<T>
и
ICollection
.

Взгляните на приведенные ниже примеры:

// Инициализация стандартного массива.

int[] myArrayOfInts = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

// Инициализация обобщенного List<> с элементами int.

List<int> myGenericList = new List<int> { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

// Инициализация ArrayList числовыми данными.

ArrayList myList = new ArrayList { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

Если контейнером является коллекция классов или структур, тогда синтаксис инициализации коллекций можно смешивать с синтаксисом инициализации объектов, получая функциональный код. Вспомните класс

Point
из главы 5, в котором были определены два свойства,
X
и
Y
. Для построения обобщенного списка
List<T>
объектов
Point
можно написать такой код:

List<Point> myListOfPoints = new List<Point>

{

  new Point { X = 2, Y = 2 },

  new Point { X = 3, Y = 3 },

  new Point { X = 4, Y = 4 }

};

foreach (var pt in myListOfPoints)

{

  Console.WriteLine(pt);

}

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

List<T>
объектов
Rectangle
без использования синтаксиса инициализации коллекций:

List<Rectangle> myListOfRects = new List<Rectangle>

{

  new Rectangle {

    Height = 90, Width = 90,

    Location = new Point { X = 10, Y = 10 }},

  new Rectangle {

    Height = 50,Width = 50,

    Location = new Point { X = 2, Y = 2 }},

};

foreach (var r in myListOfRects)

{

  Console.WriteLine(r);

}

Работа с классом List<T>

Создайте новый проект консольного приложения под названием

FunWithGenericCollections
. Добавьте новый файл по имени
Person.cs
и поместите в него показанный ниже код (это тот же самый код с определением предыдущего класса
Person
):

namespace FunWithGenericCollections

Перейти на страницу:

Троелсен Эндрю читать все книги автора по порядку

Троелсен Эндрю - на сайте онлайн книг books-read.com Вы можете читать полные версии книг автора в одном месте.


Язык программирования C#9 и платформа .NET5 отзывы

Отзывы читателей о книге Язык программирования C#9 и платформа .NET5, автор: Троелсен Эндрю. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор books-read.com


Прокомментировать
Подтвердите что вы не робот:*