Satu pola jarang cukup untuk aturan bisnis nyata; kita sering butuh rentang tertentu, daftar nilai, atau negasi sebuah syarat. Logical pattern menyediakan tiga operator untuk itu: and, or, dan not, yang bekerja di atas pola mana pun. Bab ini membahas prioritas ketiganya, penggunaan tanda kurung, dan contoh poin loyalitas yang memakai semuanya.
Tiga Operator dan Prioritasnya #
Operator not mengikat paling kuat, diikuti and, lalu or, menyerupai !, &&, dan || pada logika biasa. Operator and menuntut kedua pola cocok, or cukup satu, dan not membalik hasil pola di belakangnya. Ketika prioritas membingungkan, tanda kurung menetapkan kelompok secara eksplisit dan membuat niat terbaca.
Contoh: Poin Loyalitas #
int poin = 850;
string level = poin switch
{
< 500 => "Dasar",
>= 500 and < 1000 => "Silver",
_ => "Emas"
};
Console.WriteLine($"Level: {level}");
Console.WriteLine($"Rentang Silver: {poin is >= 500 and < 1000}");
Console.WriteLine($"Bukan Emas: {poin is not >= 1000}");
Console.WriteLine($"Target wilayah barat: {poin is 800 or 850 or 900}");
Console.WriteLine($"Kombinasi kurung: {poin is (>= 500 and <= 900) and not 700}");Output yang Dihasilkan:
Level: Silver
Rentang Silver: True
Bukan Emas: True
Target wilayah barat: True
Kombinasi kurung: TrueMari kita bedah baris demi baris:
< 500dan>= 500 and < 1000: Dua arm pertama membagi skala poin; arm kedua memakaiandagar rentangnya terbatas, dan sisanya jatuh ke discard sebagaiEmas.poin is >= 500 and < 1000: Bentukisyang sama menghasilkan bool untuk kondisi tunggal, cocok sebagai syarat variabel atau argumen.poin is not >= 1000: Negasi ditempelkan pada pola relational, sehingga membaca “poin tidak mencapai seribu”.poin is 800 or 850 or 900: Operatorormerangkai constant pattern menjadi daftar nilai target tanpa menulis tiga syarat terpisah.(>= 500 and <= 900) and not 700: Tanda kurung menetapkan rentang sebagai satu kelompok, lalunot 700mengecualikan satu nilai di dalamnya.
Ketika Pola Logis Menumpuk #
Rantai and dan or yang panjang lebih mudah dibaca bila setiap kelompok diberi kurung dan nama konstanta yang bermakna. Bila syarat memerlukan data dari beberapa property sekaligus, property pattern pada bab berikutnya menjadi wadah yang lebih rapi daripada menumpuk operator logis.