Partage via


Opérateur is (référence C#)

L’opérateur is vérifie si le résultat d’une expression est compatible avec un type donné. Pour plus d’informations sur l’opérateur de test is de type, consultez la section opérateur de l’article sur les opérateurs de test de type et de cast . Vous pouvez également utiliser l’opérateur is pour faire correspondre une expression à un modèle, comme l’illustre l’exemple suivant :

static bool IsFirstFridayOfOctober(DateTime date) =>
    date is { Month: 10, Day: <=7, DayOfWeek: DayOfWeek.Friday };

Dans l’exemple précédent, l’opérateur is correspond à une expression par rapport à un modèle de propriété avec des modèles constants et relationnels imbriqués.

La documentation de référence du langage C# décrit la version la plus récente du langage C#. Il contient également la documentation initiale des fonctionnalités dans les préversions publiques pour la prochaine version du langage.

La documentation identifie toute fonctionnalité introduite en premier dans les trois dernières versions de la langue ou dans les préversions publiques actuelles.

Conseil / Astuce

Pour savoir quand une fonctionnalité a été introduite en C#, consultez l’article sur l’historique des versions du langage C#.

L’opérateur is peut être utile dans les scénarios suivants :

  • Pour vérifier le type d’exécution d’une expression, comme l’illustre l’exemple suivant :

    int i = 34;
    object iBoxed = i;
    int? jNullable = 42;
    if (iBoxed is int a && jNullable is int b)
    {
        Console.WriteLine(a + b);  // output 76
    }
    

    L’exemple précédent montre l’utilisation d’un modèle de déclaration.

  • Pour rechercher null, comme l’illustre l’exemple suivant :

    if (input is null)
    {
        return;
    }
    

    Lorsque vous correspondez à une expressionnull, le compilateur garantit qu’aucun opérateur surchargé ou == surchargé != par l’utilisateur n’est appelé.

  • Pour effectuer une vérification non null à l’aide d’un modèle de négation, comme l’illustre l’exemple suivant :

    if (result is not null)
    {
        Console.WriteLine(result.ToString());
    }
    
  • Pour faire correspondre des éléments d’une liste ou d’un tableau à l’aide de modèles de liste. Le code suivant vérifie les tableaux pour les valeurs entières dans les positions attendues :

    int[] empty = [];
    int[] one = [1];
    int[] odd = [1, 3, 5];
    int[] even = [2, 4, 6];
    int[] fib = [1, 1, 2, 3, 5];
    
    Console.WriteLine(odd is [1, _, 2, ..]);   // false
    Console.WriteLine(fib is [1, _, 2, ..]);   // true
    Console.WriteLine(fib is [_, 1, 2, 3, ..]);     // true
    Console.WriteLine(fib is [.., 1, 2, 3, _ ]);     // true
    Console.WriteLine(even is [2, _, 6]);     // true
    Console.WriteLine(even is [2, .., 6]);    // true
    Console.WriteLine(odd is [.., 3, 5]); // true
    Console.WriteLine(even is [.., 3, 5]); // false
    Console.WriteLine(fib is [.., 3, 5]); // true
    

Remarque

Pour obtenir la liste complète des modèles pris en charge par l’opérateur is , consultez Modèles.

Spécification du langage C#

Pour plus d’informations, consultez la section Opérateur de la spécification du langage C# et des critères correspondants.

Voir aussi