Bagikan melalui


Operator is (referensi C#)

Operator is memeriksa apakah hasil ekspresi kompatibel dengan jenis tertentu. Untuk informasi tentang operator pengujian is jenis, lihat bagian operator is dari artikel Pengujian jenis dan operator cast . 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 polakonstanta dan relasional berlapis.

Referensi bahasa C# mendokumentasikan versi bahasa C# yang paling baru dirilis. Ini juga berisi dokumentasi awal untuk fitur dalam pratinjau publik untuk rilis bahasa yang akan datang.

Dokumentasi mengidentifikasi fitur apa pun yang pertama kali diperkenalkan dalam tiga versi terakhir bahasa atau dalam pratinjau publik saat ini.

Petunjuk / Saran

Untuk menemukan kapan fitur pertama kali diperkenalkan di C#, lihat artikel tentang riwayat versi bahasa C#.

Operator is dapat berguna dalam skenario berikut:

  • Untuk memeriksa jenis run-time 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, pengkompilasi menjamin bahwa tidak ada pengguna yang kelebihan beban == atau != operator yang dipanggil.

  • Untuk melakukan pemeriksaan non-null dengan menggunakan pola negasi, seperti yang ditunjukkan contoh berikut:

    if (result is not null)
    {
        Console.WriteLine(result.ToString());
    }
    
  • Untuk mencocokkan elemen daftar atau array dengan menggunakan pola daftar. Kode berikut memeriksa array untuk nilai bilangan bulat 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
    

Nota

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

Spesifikasi bahasa C#

Untuk informasi selengkapnya, lihat bagian operator adalahspesifikasi bahasa C# dan Pencocokan pola.

Lihat juga