is, opérateur (référence C#)

L' is opérateur 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 is de l’article relatif aux opérateurs de test de type et de conversion .

À compter de C# 7,0, vous pouvez également utiliser l' is opérateur pour faire correspondre une expression à un modèle, comme le montre l’exemple suivant :

static bool IsFirstSummerMonday(DateTime date) => date is { Month: 6, Day: <=7, DayOfWeek: DayOfWeek.Monday };

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

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

  • Pour vérifier le type au moment de l’exécution d’une expression, comme le montre 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 vérifier null , comme le montre l’exemple suivant :

    if (input is null)
    {
        return;
    }
    

    Quand vous faites correspondre une expression à null , le compilateur garantit qu’aucun opérateur ou surchargé par l’utilisateur == != n’est appelé.

  • À compter de C# 9,0, vous pouvez utiliser un modèle de négation pour effectuer un contrôle non null, comme le montre l’exemple suivant :

    if (result is not null)
    {
        Console.WriteLine(result.ToString());
    }
    

Notes

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

spécification du langage C#

Pour plus d’informations, consultez la section L’opérateur is de la Specification du langage C# et les propositions de langage C# suivantes :

Voir aussi