C# 6.0? .. Operator: Pemprosesan Nilai Udara yang Dipadam
C# 6.0 diperkenalkan?. Pengendali ini biasanya dipanggil pengendali bersyarat kosong, yang menyediakan cara yang mudah dan selamat untuk mengakses atribut atau kaedah panggilan objek kosong.
mari kita lihat serpihan kod berikut:
mari kita memecahkan prinsip kerja pengendali ini:
<code class="language-csharp">public class A { public string PropertyOfA { get; set; } } ... var a = new A(); var foo = "bar"; if (a?.PropertyOfA != foo) { //somecode }</code>
Ia mula -mula menilai nombor operasi pertama (a) dan memeriksa sama ada ia kosong. Sekiranya A kosong, keseluruhan ungkapan akan dinilai sebagai null dan tidak akan dinilai lebih lanjut.
Pertimbangkan tatabahasa alternatif ini:
Walaupun kaedah ini telah mencapai hasil yang sama, ia melibatkan nilai udara yang berasingan dan tugasan bersyarat. ?.
<code class="language-csharp">string bar = (a == null ? null : a.PropertyOfA); if (bar != foo) { ... }</code>
Di samping itu, simbol operasi boleh mengubah jenis ungkapan. Sebagai contoh, FileInfo.Length adalah atribut yang panjang. Walau bagaimanapun, jika anda menggunakannya di atasnya?
Anda akhirnya mendapat ungkapan yang panjang? Ini menghapuskan permintaan untuk pemeriksaan vakum yang jelas, memudahkan kod anda dan meningkatkan ketersediaannya.
Atas ialah kandungan terperinci Bagaimanakah pengendali C# 6.0 NULL-CONDITION (?) Memudahkan pengendalian null?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!