Scoped

The scoped modifier in C# restricts the lifetime of a variable, particularly when dealing with ref structs. 

It ensures that the variable's lifetime is limited to the current method and prevents it from being extended beyond that scope. 

This helps in managing the lifetime of ref structs to prevent potential issues like dangling references or unintended lifetime extension.

using System;

public ref struct MyRefStruct
{
    public int Value;
}

public class Program
{
    // Method with scoped ref parameter
    public static void ModifyRefStruct(scoped ref MyRefStruct data)
    {
        // Since data is scoped, it's guaranteed to only exist within this method
        data.Value = 42;
    }

    public static void Main()
    {
        MyRefStruct refStruct = new MyRefStruct();
        refStruct.Value = 10;

        // Call the method with scoped ref parameter
        ModifyRefStruct(scoped refStruct);

        // Access the modified value
        Console.WriteLine("Modified Value: " + refStruct.Value); // Output: 42
    }
}

Refereneces:
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/statements/declarations#reference-variables