Bagikan melalui


operator is (referensi C#)

Operator is memeriksa apakah hasil ekspresi kompatibel dengan jenis tertentu. Untuk informasi tentang operator pengujian jenis is, lihat bagian operator is dari artikel Pengujian jenis dan operator transmisi. Anda juga dapat menggunakan is operator untuk mencocokkan ekspresi dengan pola, seperti yang ditunjukkan contoh berikut:

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

Dalam contoh sebelumnya, is operator cocok dengan ekspresi terhadap pola properti dengan pola konstanta dan relasional berlapis.

Operator is dapat berguna dalam skenario berikut:

  • Untuk memeriksa jenis run-time suatu ekspresi, seperti yang ditunjukkan contoh berikut:

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

    Contoh sebelumnya menunjukkan penggunaan pola deklarasi.

  • Untuk memeriksa null, seperti yang ditunjukkan contoh berikut:

    if (input is null)
    {
        return;
    }
    

    Saat Anda mencocokkan ekspresi dengan null, kompiler menjamin bahwa tidak ada pengguna yang kelebihan beban operator == atau != yang dipanggil.

  • Anda dapat menggunakan pola negasi untuk melakukan pemeriksaan non-null, seperti yang ditunjukkan contoh berikut:

    if (result is not null)
    {
        Console.WriteLine(result.ToString());
    }
    
  • Dimulai dengan C# 11, Anda dapat menggunakan pola daftar untuk mencocokkan elemen daftar atau array. Kode berikut memeriksa array untuk nilai integer dalam posisi yang diharapkan:

    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
    

Catatan

Untuk daftar lengkap pola yang didukung oleh operator is, lihat Pola.

Spesifikasi bahasa C#

Untuk informasi selengkapnya, lihat bagian operator adalah spesifikasibahasa C# dan Pencocokan pola.

Lihat juga