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

Тут можно читать бесплатно Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Жанр: Компьютеры и Интернет / Базы данных. Так же Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте FullBooks.club (Фулбукс) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту pbn.book@yandex.ru для удаления материала


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

Прочтите описание перед тем, как прочитать онлайн книгу «Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю» бесплатно полную версию:

В 10-м издании книги описаны новейшие возможности языка C# 9 и .NET 5 вместе с подробным "закулисным" обсуждением, призванным расширить навыки критического мышления разработчиков, когда речь идет об их ремесле.

Книга охватывает ASP.NET Core, Entity Framework Core и многое другое наряду с последними обновлениями унифицированной платформы .NET, начиная с улучшений показателей производительности настольных приложений Windows в .NET 5 и обновления инструментария XAML и заканчивая расширенным рассмотрением файлов данных и способов обработки данных.

Все примеры кода были переписаны с учетом возможностей последнего выпуска C# 9.

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

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

Класс ObservableCollection<T> удобен своей возможностью информировать внешние объекты, когда его содержимое каким-то образом изменяется (как и можно было догадаться, работа с ReadOnlyObservableCollection<T> похожа, но по своей природе допускает только чтение).

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

Создайте новый проект консольного приложения по имени FunWithObservableCollections и импортируйте в первоначальный файл кода C# пространство имен System.Collections.ObjectModel. Во многих отношениях работа с ObservableCollection&lt;T&gt; идентична работе с List&lt;T&gt;, учитывая, что оба класса реализуют те же самые основные интерфейсы. Уникальным класс ObservableCollection&lt;T> делает тот факт, что он поддерживает событие по имени CollectionChanged. Указанное событие будет инициироваться каждый раз, когда вставляется новый элемент, удаляется (или перемещается) существующий элемент либо модифицируется вся коллекция целиком.

Подобно любому другому событию событие CollectionChanged определено в терминах делегата, которым в данном случае является NotifyCollectionChangedEventHandler. Этот делегат может вызывать любой метод, который принимает object в первом параметре и NotifyCollectionChangedEventArgs — во втором. Рассмотрим следующий код, в котором наполняется наблюдаемая коллекция, содержащая объекты Person, и осуществляется привязка к событию CollectionChanged:

using System;

using System.Collections.ObjectModel;

using System.Collections.Specialized;

using FunWithObservableCollections;

// Сделать коллекцию наблюдаемой

// и добавить в нее несколько объектов Person.

ObservableCollection&lt;Person&gt; people = new ObservableCollection&lt;Person&gt;()

{

  new Person{ FirstName = &quot;Peter&quot;, LastName = &quot;Murphy&quot;, Age = 52 },

  new Person{ FirstName = &quot;Kevin&quot;, LastName = &quot;Key&quot;, Age = 48 },

};

// Привязаться к событию CollectionChanged.

people.CollectionChanged += people_CollectionChanged;

static void people_CollectionChanged(object sender,

    System.Collections.Specialized.NotifyCollectionChangedEventArgs e)

{

  throw new NotImplementedException();

}

Входной параметр NotifyCollectionChangedEventArgs определяет два важных свойства, OldIterns и NewItems, которые выдают список элементов, имеющихся в коллекции перед генерацией события, и список новых элементов, вовлеченных в изменение. Тем не менее, такие списки будут исследоваться только в подходящих обстоятельствах. Вспомните, что событие CollectionChanged инициируется при добавлении, удалении, перемещении или сбросе элементов. Чтобы выяснить, какое из упомянутых действий запустило событие, можно использовать свойство Action объекта NotifyCollectionChangedEventArgs. Свойство Action допускается проверять на предмет равенства любому из членов перечисления NotifyCollectionChangedAction:

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

public enum NotifyCollectionChangedAction

{

  Add = 0,

  Remove = 1,

  Replace = 2,

  Move = 3,

  Reset = 4,

}

Ниже показана реализация обработчика событий CollectionChanged, который будет обходить старый и новый наборы, когда элемент вставляется или удаляется из имеющейся коллекции (обратите внимание на оператор using для System.Collections.Specialized):

using System.Collections.Specialized;

...

static void people_CollectionChanged(object sender,

  NotifyCollectionChangedEventArgs e)

{

  // Выяснить действие, которое привело к генерации события.

  Console.WriteLine(&quot;Action for this event: {0}&quot;, e.Action);

  // Было что-то удалено.

  if (e.Action == NotifyCollectionChangedAction.Remove)

  {

    Console.WriteLine(&quot;Here are the OLD items:&quot;);  // старые элементы

    foreach (Person p in e.OldItems)

    {

      Console.WriteLine(p.ToString());

    }

    Console.WriteLine();

  }

  // Было что-то добавлено.

  if (e.Action == NotifyCollectionChangedAction.Add)

  {

    // Теперь вывести новые элементы, которые были вставлены.

    Console.WriteLine(&quot;Here are the NEW items:&quot;);  // Новые элементы

  foreach (Person p in e.NewItems)

    {

Перейти на страницу:
Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.
Комментарии / Отзывы
    Ничего не найдено.