Как и обещал, выкладываю самое интересное за первую неделю на C# Advent 2024.
🟡A .NET coding puzzle: Can strings change?
Очень интересный челлендж со строками. Нужно сделать так, что бы программа ниже вывела “Advent of C#”.
Initialize();
var happyHolidays = "Merry Christmas";
// should output: Advent of C#
Console.WriteLine(happyHolidays);
static void Initialize() {
// Your implementation here
}
Сложность в том, что:
- Изменения можно вносить только в метод Initialize.
- Нельзя менять сигнатуру метода.
- Нельзя использовать Console внутри метода Initialize.
- Нельзя использовать стандартный выходной поток.
Автор рассматривает несколько решений. Все они связаны с поведением .NET при работе со строками-литералами, пулом интернирования строк и указателями.
🟡DI-Cluttering Your Code
Статья о том, как избежать проблем с множеством зависимостей в классах. Но я бы назвал её «Как не надо проектировать системы». Честно говоря, я не представляю, как можно получить контроллер, в который внедряются 34 зависимости. 😵💫 Это не шутка – смотрите пример из статьи.
Благодаря Minimal API и Primary Constructors автор решает проблему с большим количеством зависимостей, но мне кажется, корень проблемы лежит немного в другой плоскости.
---
В понедельник утром публикуется моя статья. Версию на русском опубликую на Хабре.