Tipos relacionados a memória e extensão

Do .NET Core 2.1 em diante, o .NET inclui uma variedade de tipos interrelacionados que representam uma região contígua, fortemente tipada de memória arbitrária. Estão incluídos:

System.Span<T>, System.Memory<T> e seus equivalentes somente leitura são projetados para permitir a criação de algoritmos que evitam copiar memória ou alocar no heap gerenciado mais do que o necessário. Criá-los (por meio de Slice ou seus construtores) não envolve a duplicação dos buffers subjacentes: somente as referências e os deslocamentos relevantes, que representam a "exibição" da memória encapsulada, são atualizados.

Observação

Para estruturas anteriores, Span<T> e Memory<T> estão disponíveis no pacote do System.Memory NuGet.

Para obter mais informações, consulte o namespace de System.Buffers.

Como trabalhando com memória e extensão

Como os tipos relacionados a memória e extensão normalmente são usados para armazenar dados em um pipeline de processamento, é importante que os desenvolvedores sigam um conjunto de melhores práticas ao usar Span<T>, Memory<T> e tipos relacionados. Essas melhores práticas estão documentadas em Diretrizes de uso de Memória<T> e Extensão<T>.

Confira também