TGViewer
Библиотека шарписта | C#, F#, .NET, ASP.NET Библиотека шарписта | C#, F#, .NET, ASP.NET @csharpproglib · 21.7K subscribers
Post #7131 2.98K
🧩 Разбор задачи

Правильный ответ: 10

Многие ожидают увидеть 20, но здесь есть важная деталь:

Counter — это struct, а значит значимый тип (value type).


Когда выполняется:


var c2 = c1;


создаётся не ссылка на объект, а полная копия структуры.

После этой строки в памяти фактически находятся два независимых экземпляра:


c1 -> Value = 10 c2 -> Value = 10


Затем меняется только копия:


c2.Value = 20;


Теперь состояние выглядит так:


c1 -> Value = 10 c2 -> Value = 20


Поэтому вывод будет: 10

💡 Это одно из ключевых отличий struct от class.

Для сравнения, если бы Counter был классом:


public class Counter
{
public int Value;
}


то после:


var c2 = c1;


обе переменные ссылались бы на один и тот же объект, и результатом был бы уже 20.

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

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

#dotnet_challenge
  • 🥱 15
  • 👍 3
  • ❤‍🔥 1
More from @csharpproglib
  1. Sep 20, 2026💪 Разминка перед трудовыми буднями Что произойдёт? ❤️ — список станет [1, 3] 🔥 — Invalid…
  2. Sep 19, 2026🧩 Middleware в ASP.NET Core: 3 ловушки Middleware — звено HTTP pipeline: app.Use(async (c…
  3. Sep 18, 2026📍 Навигация: Вакансии • Задачи • Собесы 🐸Библиотека шарписта #garbage_collector
  4. Sep 17, 2026🦆 Duck typing в C# — почти как в TypeScript В TypeScript достаточно, чтобы у объекта был…
  5. Sep 17, 2026🧠 Почему .NET-под съедает всю память? kubectl top pod показывает 1 ГБ, а managed heap зан…
  6. Sep 15, 2026🧑‍💻 Забытый await: от race condition до DoS-атаки В C# ключевое слово async — это инстру…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →