Aracılığıyla paylaş


İşleç is (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 isve 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şkiseldesenlere sahip bir özellik deseniyle eşleştirir.

C# dili başvuru belgesi, C# dilinin en son yayımlanan sürümünü gösterir. Ayrıca, yaklaşan dil sürümü için genel önizlemelerdeki özelliklere yönelik ilk belgeleri içerir.

Belgelerde ilk olarak dilin son üç sürümünde veya geçerli genel önizlemelerde sunulan tüm özellikler tanımlanır.

Tavsiye

Bir özelliğin C# dilinde ilk tanıtıldığı zamanları bulmak için C# dil sürümü geçmişi makalesine bakın.

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 bir olumsuzlama deseni kullanarak null olmayan bir denetim yapmak için:

    if (result is not null)
    {
        Console.WriteLine(result.ToString());
    }
    
  • Liste desenlerini kullanarak bir liste veya dizinin öğelerini eşleştirmek için. 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
    

Uyarı

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

C# dil 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 bakınız