TGViewer
Библиотека собеса по C# | вопросы с собеседований Библиотека собеса по C# | вопросы с собеседований @csharp_interview_lib · 5.65K subscribers
Post #1114 1.85K
Что такое Span<T> и Memory<T> в C# и в чём между ними разница?

Span<T> — это ref-структура, представляющая непрерывный участок памяти (массив, стек, неуправляемая память) без аллокаций в куче. Позволяет работать с подмассивами, строками и буферами без копирования. Так как это ref struct, Span<T> живёт только на стеке: его нельзя сохранять в полях класса, использовать в async-методах, итераторах или захватывать в лямбдах.
Memory<T> — обычная структура с теми же возможностями по представлению участка памяти, но без ограничений ref-структуры. Её можно хранить в полях, передавать через await, использовать в асинхронном коде. Получить Span<T> из Memory<T> можно через свойство .Span.
Правило выбора: Span<T> — для синхронного, горячего кода с максимальной производительностью; Memory<T> — когда нужно пересечь границы async/await или сохранить ссылку на буфер.

Библиотека собеса по С#
  • ❤ 4
  • 👍 2
More from @csharp_interview_lib
  1. Sep 21, 2026🔍Тестовое собеседование с Senior C# разработчиком уже завтра 22 сентября (уже завтра!) в…
  2. Sep 15, 2026Когда выбирать struct/record struct вместо class? Для маленьких, неизменяемых и часто копи…
  3. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
  4. Sep 9, 2026RabbitMQ в Production: Transactional Outbox, идемпотентность и DLQ в ASP.NET Core Отправит…
  5. Sep 7, 2026⚡️⚡️Актуальные темы .NET на DotNext 2026 В .NET одновременно происходит много интересного:…
  6. Aug 4, 2026Долгоживущий .NET-сервис постепенно “распухает” по памяти без явных LOH-пиков. В дампе вид…
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 →