Библиотека шарписта | C#, F#, .NET, ASP.NET: post #7244 — TG.ME

👨‍💻 Ложная иммутабельность

Часто новички в функциональном программировании думают, что сделали иммутабельный код. Берут список, вызывают ToList() или Select() и радуются новому списку. Но в C# это ловушка.

Проблема в ссылочных типах. var copy = original.ToList() создаёт новый List, но все элементы внутри — те же самые объекты. Меняете свойство через copy, и оригинал тоже меняется.

Правило трёх:

🤩 Records с init-only свойствами для value-like поведения
🤩 ImmutableList<T> из System.Collections.Immutable — настоящие неизменяемые коллекции
🤩 Struct только для маленьких типов

📍 Навигация: ВакансииЗадачиСобесы

🐸Библиотека шарписта

#sharp_view
👍6
August 26, 2026 3K 18