Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where do I find the new Span<T>?

Tags:

Everyone is writing about how great the new type Span<T> is so I eagerly wanted to start rewriting a couple of methods in my libraries but where do I actually find it? I've updated Visual Studio 2017 to the latest version 15.5.0 where the change-log says:

The C# compiler now supports the 7.2 set of language features including:

  • Support for the Span<T> type being used throughout Kestrel and CoreFX via the ref struct modifier.

but when I try to use it my code I'm getting an error and intellisense cannot resolve it. It's a .net 4.6.2 project and the language version is set to latest minor.

Do I need to install some NuGet package in order to be able to use it? I can't figure this out.

like image 399
t3chb0t Avatar asked Dec 05 '17 09:12

t3chb0t


People also ask

What is span T?

A Span<T> represents a contiguous region of arbitrary memory. A Span<T> instance is often used to hold the elements of an array or a portion of an array. Unlike an array, however, a Span<T> instance can point to managed memory, native memory, or memory managed on the stack.

What is span in C sharp?

A Span<> is an allocation-free representation of contiguous regions of arbitrary memory. Span<> is implemented as a ref struct object that contains a ref to an object T and a length. This means that a Span in C# will always be allocated to stack memory, not heap memory.

What is an array span?

Then you will get n more inputs corresponding to each index of the array. And you are required to find the span of the array, which is defined as the difference between max and min value of the array.


1 Answers

You need to install prerelease version (check "Include prerelease" checkbox in nuget manager) of System.Memory package. Then just use Span (it's in System namespace).

like image 128
Evk Avatar answered Oct 24 '22 18:10

Evk