Pengendali bersyarat dalam C# seperti namanya merujuk kepada penggunaan tiga operan dalam program C#. Operan yang digunakan untuk menandakan keadaan, nilai jika syarat adalah benar dan nilai jika syarat adalah palsu. Simbol yang digunakan untuk mewakili pengendali bersyarat dalam C# ialah '? : ’ (petikan hendaklah diabaikan kerana ia bukan sebahagian daripada simbol dan digunakan untuk menyertakan simbol membezakan).
Sintaks:
condition_expression ? first_expression : second_expression;
Operan pertama dinyatakan sebelum? dan mengandungi definisi menilai ungkapan keadaan. Penjagaan perlu diambil semasa mentakrifkan ungkapan supaya keadaan penilaian harus sentiasa menghasilkan hasil bool. Tiada menyatakan ungkapan Boolean atau menyatakan ungkapan yang rosak akan mengakibatkan ralat penyusunan. Ungkapan kedua yang dinyatakan sebelum simbol: dan memegang takrifan atau tugasan sekiranya keadaan yang ditakrifkan dalam ungkapan pertama bernilai benar. Oleh itu, jika nilai pulangan yang ditentukan dalam ungkapan pertama adalah benar, operan kedua dinilai.
Operan ketiga dalam takrifan mengandungi takrif ungkapan sekiranya hasil bersyarat operan pertama dinilai sebagai palsu. Sebagai alternatif, pengendali bersyarat dikenali sebagai operator ternary atau operator inline if. Penggunaan utama pengendali bersyarat dalam C# didapati sebagai alternatif untuk gelung if-else di mana ini digunakan untuk mengurangkan saiz blok kod. Kelebihan utama pengendali bersyarat yang lain ialah ia menterjemah aliran kompilasi dari segi pernyataan cawangan yang mengurangkan penggunaan bersarang jika pernyataan diperlukan.
Pengendali bersyarat mengikut prinsip perkaitan yang betul iaitu operasi dikumpulkan dari kanan ke kiri. Selain itu, masa penyusunan sangat dikurangkan kerana pengendali bersyarat hanya menilai ungkapan nilai operan tunggal. Nilai operan kedua dan ketiga adalah terhad kepada fungsi tugasan, kenaikan dan penurunan.
Mari kita cuba memahami pendekatan pengaturcaraan C# tradisional dengan pengendali bersyarat.
Mari kita cuba dahulu pernyataan if else biasa:-
Kod:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int x = 10, y = 25; string result1; if (x > y) { result1 = "value of x is greater than y"; } else { result1 = "value of x is less than y"; } Console.WriteLine(result1); Console.ReadLine(); } } }
Output:
Atur cara di atas menggambarkan pernyataan if-else mudah yang membandingkan nilai dua pembolehubah x dan y dan mencetak hasil mengikut nilai yang diberikan kepada mereka dan selepas penilaian keadaan, x> y.
Mari kita cuba meniru atur cara di atas menggunakan pengendali bersyarat →.
Kod:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int x = 10, y = 25; string result1; //using the Ternary Operator (?:) for the comparison of x and y variable result1 = (x > y) ? "value of x is greater than y" : "value of x is less than y"; Console.WriteLine(result1); Console.ReadLine(); } } }
Output:
Sekarang kita akan mengenal pasti penggunaan utama pengendali bersyarat di mana ia digunakan sebagai cara untuk memudahkan kompleks if-else jika bersarang dengan menyediakan kriteria cawangan atau bersarang sendiri yang jauh lebih kompleks jika dibandingkan dengan if-else jika gelung.
Untuk memahami perkara yang sama mari kita pertimbangkan dahulu program if-else if biasa:-
Kod:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string comparisonResult; int a = 25, b = 50; if (a < b) { comparisonResult = "value of a is less than b "; } else if (a > b) { comparisonResult = " value of a is more than b"; } else { comparisonResult = "a and b are both equal in value "; } Console.WriteLine(comparisonResult); Console.ReadLine(); } } }
Output:
Sekarang kita akan melihat bagaimana logik yang sama dilaksanakan dalam C# menggunakan pengendali bersyarat.
Kod:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string comparisonResult; int a = 25, b = 50; //Nested Ternary Operator (?:) comparisonResult = (a < b) ? "value of a is less than b" : (a > b) ? "value of a is more than b" : "a and b are both equal in value"; Console.WriteLine(comparisonResult); Console.ReadLine(); } } }
Output:
Oleh itu, kami melihat perbezaan dalam kedua-duanya sebagai kerumitan pernyataan if-else if sangat dikurangkan dengan penggunaan operator bersyarat bersarang. Juga memahami aliran program, kami mengetahui aliran kursor sebagai prinsip persatuan yang betul
(a < b) ? "value of a is less than b" : (a > b) ? "value of a is more than b" : "a and b are both equal in value";
Blok kod dilambangkan menggunakan warna yang berasingan seperti untuk pernyataan seperti A? B: C? D : E sama dinilai seperti (A ? B : C) ? D : E.
Pengendali bersyarat ialah tiga pengendali operan yang digunakan dalam operasi penilaian dan penetapan yang mempunyai penetapan berasingan untuk nilai yang dinilai bagi operan bersyarat iaitu sama ada benar atau salah. Pengendali bersyarat mengikut prinsip perkaitan yang betul yang merujuk kepada titik di mana operasi dikumpulkan dari kanan ke kiri. Operator bersyarat tidak boleh terlebih beban menggunakan mana-mana jenis yang ditentukan pengguna dan terhad kepada nilai bool untuk penilaian. Pengendali bersyarat menyediakan penggantian yang paling sesuai untuk pernyataan if-else if yang panjang dan juga mengurangkan masa penyusunan dengan menyediakan peluang untuk penilaian pernyataan bercabang.
Atas ialah kandungan terperinci Operator Bersyarat dalam C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!