Библиотека шарписта | C#, F#, .NET, ASP.NET
22.9K subscribers
2.26K photos
36 videos
85 files
4.43K links
Все самое полезное для C#-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
До C# 8 было невозможно комбинировать await и yield return в одном методе, что затрудняло использование асинхронности внутри корутин. Теперь, когда компилятор поддерживает IAsyncEnumerable, это можно сделать естественным образом. В статье описан процесс реализации асинхронных корутин с помощью C# 8 и IAsyncEnumerable.

https://proglib.io/w/a7289f6a
Программисты говорят: «Этот язык помогает думать как программируешь и программировать — как думаешь».

Хотите изучить универсальный язык программирования, но не знаете какой выбрать?
Тогда вам в SkillFactory на курс "C++ разработчик"!
За 8,5 месяцев вы научитесь:
— Всем современным стандартам языка С++
— Писать надёжный код и покрывать его тестами
— Работать с SQL и NoSQL базами данных
— Находить узкие места в своей программе и ускорять их в несколько раз.

По окончанию обучения вы сможете стать Junior разработчиком и зарабатывать от 90 тысяч рублей в месяц.

🚀Запишитесь на курс со скидкой 40%: https://clc.am/eZDgWQ
#вопросы_для_самопроверки

Что такое boxing и unboxing в C#? Для чего они предназначены?
Операция упаковки (boxing) представляет собой процесс преобразования типа значения в тип object или в любой другой тип интерфейса, реализуемый этим типом значения. Когда тип значения упаковывается CLR, он инкапсулирует значение внутри экземпляра System.Object и сохраняет его в управляемой куче.

Операция распаковки (unboxing) извлекает тип значения из объекта.

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

Более подробно об этом написано в статье и подкреплено примерами: https://proglib.io/w/e9019ec5
Курс математики для анализа данных от Proglib и МГУ

Мы предлагаем без отрыва от работы освоить математику для анализа данных.
онлайн-встречи с преподавателями из МГУ в Zoom
подойдет всем, кто хочет вспомнить высшую математику или подготовиться к школе анализа данных Яндекса
🕗 длительность 5 месяцев, по 2 раза в неделю
💸 от 5 350 руб. в месяц.

Мы дарим промокод на скидку 10% до 6 октября — CSHARPPROGLIB
Подробнее о курсе — тут
Программа курса — тут
Библиотека шарписта | C#, F#, .NET, ASP.NET pinned «​Курс математики для анализа данных от Proglib и МГУ Мы предлагаем без отрыва от работы освоить математику для анализа данных. онлайн-встречи с преподавателями из МГУ в Zoom подойдет всем, кто хочет вспомнить высшую математику или подготовиться к школе…»
Ни для кого не секрет, что со временем приложение может сильно замедлять свою работу из-за роста обрабатываемых данных. Большинство этих проблем с производительностью возникает при объединении двух списков с целью манипулирования данными. В статье описано, как бороться с этой проблемой и сделать приложения на C# быстрее с помощью соединений LINQ.

https://proglib.io/w/b974f23d
GeekBrains проводит набор на курсы руководителей команды разработки

Программа обучения онлайн-университета GeekBrains рассчитана на middle- и senior-разработчиков. В течение 6 месяцев слушатели освоят технологии автоматизации разработки, а также методы управления командами, проектами и высоконагруженными системами. Курс разбит на четверти, каждая из которых посвящена одной из ключевых для будущего руководителя компетенций. Практикующие тимлиды с опытом в крупных проектах будут проводить занятия в формате видеолекций с выполнением заданий и разбором персональных кейсов.

Получить дополнительную информацию и записаться можно на сайте: https://proglib.io/w/69ad0053
#вопросы_для_самопроверки

В чём основное назначение событий в C# и паттерна Наблюдатель (Observer)?
Событие — это сообщение, посланное объектом, чтобы сообщить о совершении действия. Это действие может быть вызвано взаимодействием с пользователем, например при нажатии кнопки, или другой логикой программы, например изменением значения свойства. Объект, вызывающий событие, называется отправителем событий. Отправителю событий не известен объект или метод, который будет получать (обрабатывать) созданные им события.

События являются членами класса и объявляются с помощью ключевого слова event. Чаще всего для этой цели используется следующая форма: event делегат_события имя_события;

где делегат_события обозначает имя делегата, используемого для поддержки события, а имя_события — конкретный объект объявляемого события.

Как и делегаты, события поддерживают групповую адресацию. Это дает возможность нескольким объектам реагировать на уведомление о событии.

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

Признаки применения паттерна: Наблюдатель можно определить по механизму подписки и методам оповещения, которые вызывают компоненты программы.

Применение данного паттерна описано здесь.
Учимся работать с данными в C#

Цикл материалов, в рамках которых рассматриваются следующие темы:
✔️выбор правильного типа данных;
✔️приведение типов и преобразование данных из одного типа в другой;
✔️изменение строковых данных, форматирование строковых данных для отображения и изменение содержимого строки;
✔️обработка массивов, добавление, удаление и сортировка данных.

https://proglib.io/w/1d56ac62