Skip to content

FR CSharp Keyword scoped

Codex edited this page Oct 11, 2026 · 2 revisions

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

C#: scoped

Manuel C# · Guide pratique

scoped limite la durée de vie valide d’une valeur de paramètre de référence ou de type réf. Le compilateur ne permettra pas qu'une telle référence soit renvoyée d'une manière qui dépasse la durée de vie définie. Le modificateur ne rend pas les données immuables : la référence scoped permet de modifier la valeur de l'appelant.

Exemple simple (Example.cs)

Enregistrez cet exemple séparément dans Example.cs. Exécutez-le indépendamment des autres exemples de cette page.

Example.cs:

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

Résultat:

5

Syntaxe

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

Lecture des données de stackalloc dans le paramètre scoped

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;
    }
}

Résultat:

15

Changer un numéro via une référence étendue sans renvoyer de référence

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;
    }
}

Résultat:

20

Source officielle : Microsoft Apprendre.

Clone this wiki locally