Skip to content

ES CSharp Keyword scoped

Codex edited this page Oct 11, 2026 · 2 revisions

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

C#: scoped

Manual C# · Guía Práctica

el alcance limita la vida útil válida de una referencia o un valor de parámetro similar a una referencia. El compilador no permitirá que se devuelva dicha referencia de una manera que exceda la vida útil establecida. El modificador no hace que los datos sean inmutables: la referencia de alcance permite cambiar el valor de la persona que llama.

Ejemplo sencillo (Example.cs)

Guarde este ejemplo por separado como Example.cs. Ejecútelo independientemente de los demás ejemplos de esta página.

Example.cs:

// PROJECT-EXAMPLE
void Add(scoped ref int value) { value += 2; }
int count = 3;
Add(ref count);
System.Console.WriteLine(count);

Resultado:

5

Sintaxis

static int Sum(scoped ReadOnlySpan<int> values);
static void Add(scoped ref int value, int amount);

Lectura de datos de stackalloc en el parámetro de alcance

using System;

internal static class Program
{
    public static void Main()
    {
        ReadOnlySpan<int> readings = stackalloc int[] { 3, 5, 7 };
        Console.WriteLine(Sum(readings));
    }
    private static int Sum(scoped ReadOnlySpan<int> values)
    {
        int total = 0;
        foreach (int value in values) total += value;
        return total;
    }
}

Resultado:

15

Cambiar un número a través de una referencia de ámbito sin devolver una referencia

using System;

internal static class Program
{
    public static void Main()
    {
        int points = 10;
        Add(ref points, 4);
        Add(ref points, 6);
        Console.WriteLine(points);
    }
    private static void Add(scoped ref int value, int amount)
    {
        value += amount;
    }
}

Resultado:

20

Fuente oficial: Microsoft Aprender.

Clone this wiki locally