Span<T>는 임의의 연속된 영역에 대한 형식 안전을 보장하며 최적의 속도를 보장합니다. 하지만 스택에 머물러야 하므로 제한적인데요, 다음의 코드는 request.Convert(values)에서 컴파일 오류가 발생합니다.
public ref struct ConversionRequest
{
        public ConversionRequest(double rate)
        {
            Rate = rate;
        }
        public double Rate { get; }
        public void Convert(Span<double> values)
        {
        }
}
public class Converter
{
        public void Handle(ref ConversionRequest request)
        {
            Span<double> values = stackalloc double[10];
            //Will not compile!
            request.Convert(values);
        }
}
이 때 Convert() 메소드의 매개변수 앞에 scoped를 붙이면 Convert() 메소드가 호출된 영역으로 제한하므로 정상 컴파일 됩니다.