is işleci (C# başvurusu)

işleci, is bir ifadenin sonucunun belirli bir türle uyumlu olup olmadığını denetler. Tür testi işleci hakkında bilgi için Tür testi is ve atama işleçleri makalesinin is işleci bölümüne bakın. Aşağıdaki örnekte gösterildiği gibi, bir ifadeyi is bir desenle eşleştirmek için işlecini de kullanabilirsiniz:

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

Yukarıdaki örnekte işleç, bir ifadeyi is iç içe sabit ve ilişkisel desenlere sahip bir özellik deseniyle eşleştirir.

işleci is aşağıdaki senaryolarda yararlı olabilir:

  • Aşağıdaki örnekte gösterildiği gibi bir ifadenin çalışma zamanı türünü denetlemek için:

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

    Yukarıdaki örnekte bildirim deseninin kullanımı gösterilmektedir.

  • Aşağıdaki örnekte gösterildiği gibi öğesini denetlemek için null:

    if (input is null)
    {
        return;
    }
    

    ile bir ifadeyi nulleşleştirdiğinizde, derleyici kullanıcı aşırı yüklenmiş == veya != işleç çağrılmadığı garanti eder.

  • Aşağıdaki örnekte gösterildiği gibi null olmayan bir denetim yapmak için bir olumsuzlama deseni kullanabilirsiniz:

    if (result is not null)
    {
        Console.WriteLine(result.ToString());
    }
    
  • C# 11'le başlayarak, liste veya dizi öğelerini eşleştirmek için liste desenlerini kullanabilirsiniz. Aşağıdaki kod, dizilerde beklenen konumlardaki tamsayı değerlerini denetler:

    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
    

Not

İşleç tarafından is desteklenen desenlerin tam listesi için bkz . Desenler.

C# dili belirtimi

Daha fazla bilgi için C# dil belirtiminin is işleci bölümüne ve Desen eşleştirme bölümüne bakın.

Ayrıca bkz.