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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
Действительно, программа выведет str == null и 1/1/0001 12:00:00 AM.

Обе переменные не инициализированы, но string — это ссылочный тип (если более точно, то это immutable тип, что означает reference тип с семантикой value типа), а DateTime представляет из себя тип значения. В связи с тем, что значение по умолчанию неинициализированного типа DateTime определяется как 12:00 1 января 1 года, второе условие не выполнится и мы попадем в альтернативное условие и программа выведет 1/1/0001 12:00:00 AM.
Завершение темы, связанной с рендерингом 3D-игр:

Растеризация и трассировка лучей
Билинейная, трилинейная, анизотропная фильтрация
Освещение и тени. Математика освещения

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

https://proglib.io/w/34d55d81
Iris_Classon_Migrating_ASP_NET_Microservices_to_ASP_NET_Core_By.pdf
4.9 MB
Migrating ASP.NET Microservices to ASP.NET Core: By Example (2019)

Автор(ы): Iris Classon

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

Внедрение Microsoft .NET Core вызвало много радости, но также и путаницу для разработчиков, привыкших к приложениям и сервисам ASP. В этой книге приводятся конкретные шаги по частичной или полной миграции системы микросервисов SaaS с учетом ограниченных ресурсов, времени и финансов.

В дополнение к практическим советам и реальным примерам рассказано о многих неудачах, которые предоставят вам полный 360-градусный обзор миграции.

Автор делится предписывающими рекомендациями по всем частям системы — от кода, зависимостей, редакторов, интеграции и конвейера развертывания до модели распространения.
Конструкция a += Foo(); развернётся в a = a + Foo();, где сначала оценится левый операнд a, равный нулю. Затем оценится правый операнд, который вернёт 1. В итоге в a запишется значение 1, несмотря на то, что внутри метода Foo произошло переприсвоение поля a.

Источник: «Задачник.NET» Андрея Акиньшина
🔝 Топовый Вечный! По смехотворной цене! 🔝

8 ГБ RAM / 4x4.5 ГГц CPU / 80 ГБ NVMe / 500 Мбит/сек / anti-DDoS

Размещение в лучшем московском дата-центре Datapro, подключение к каналу 500 Мбит/сек, выделенный IPv4 адрес, защита от DDoS.

🔥Спешите узнать подробней и заказать
https://proglib.io/w/7b0538bf
Одной из наиболее интересных функций .NET Core 3.0 и C# 8.0 было добавление IAsyncEnumerable <T> (асинхронный поток). Но что в нем особенного? Что мы можем сделать сейчас, что было невозможно раньше?

https://proglib.io/w/2cd1ac6b
Займи своё место в игровой индустрии! Познакомься с Unity — дружественным игровым движком, который позволяет создавать как простые 2D-, так и сложные 3D-игры.

Регистрируйся на бесплатный интенсив: ▶️ https://clc.to/SVYylA.

🚀 Спикер интенсива — Михаил Овчинников, методист Skillbox, 12 лет в разработке. Под его руководством ты создашь свою игру, даже если никогда раньше не программировал.

Тебя ждут 3 онлайн-эфира и домашние задания, чтобы закрепить результат.

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

🎮 В результате ты получишь отличную базу для старта в геймдеве и достойный проект, который станет частью твоего портфолио!
Практические советы, связанные с правильным хранением даты и времени при разработке на C#: https://proglib.io/w/578a9678
Вы пишите ПО для сферы строительства. Вначале хотите построить панельный дом и выбрать нужного подрядчика. Затем хотите построить деревянный дом, для чего также необходимо выбрать подрядчика. Выше представлен пример реализации с помомощью паттерна ...
Anonymous Quiz
39%
Абстрактная фабрика (Abstract Factory)
32%
Фабричный метод (Factory Method)
17%
Строитель (Builder)
3%
Нет правильного ответа
10%
Посмотреть результаты
Речь идет о паттерне Фабричный метод (Factory Method), который представляет из себя пораждающий паттерн проектирования, определяющий интерфейс для создания объектов некоторого класса, но непосредственное решение о том, объект какого класса создавать, происходит в подклассах. То есть паттерн предполагает, что базовый класс делегирует создание объектов классам-наследникам.

В примере в качестве абстрактного класса Product выступает класс House. Его две конкретные реализации — PanelHouse и WoodHouse представляют типы домов, которые будут строить подрядчики.

В качестве абстрактного класса создателя выступает Developer, определяющий абстрактный метод Create(). Этот метод реализуется в классах-наследниках WoodDeveloper и PanelDeveloper.

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

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