Rumah >pembangunan bahagian belakang >C++ >Apa yang dilakukan oleh pengendali tanda tanya (??) dalam C#?
tanda soalan berganda (??) Maksud pengendali pengendali
dalam baris kod berikut:
dua tanda tanya (??) mewakili pengendali penggabungan udara. Tidak seperti pengendali ternary, pengendali penggabungan udara melaksanakan tugasan bersyarat, bukan syarat untuk pelaksanaan.
<code class="language-csharp">FormsAuth = formsAuth ?? new FormsAuthenticationWrapper();</code>
Khususnya, ungkapan
bersamaan dengan:
formsAuth ?? new FormsAuthenticationWrapper()
<code class="language-csharp">FormsAuth = formsAuth != null ? formsAuth : new FormsAuthenticationWrapper();</code>
Jika tidak batal, ia menyerahkannya kepada
formsAuth
Jika FormsAuth
diberikan kepada formsAuth
Singkatnya, ini bermakna "Jika FormsAuthenticationWrapper
tidak null, gunakan FormsAuth
; jika tidak, buat contoh Tidak seperti simbol pengkomputeran ternary, pengendali penggabungan udara hanya menilai ekspresinya sekali. Oleh itu, jika dipanggil oleh kesan sampingan, kesan sampingannya hanya akan mencetuskan sekali. formsAuth
formsAuth
Untuk menerangkan selanjutnya, ungkapan berikut akan memberikan jawapan yang tidak pertama untuk menjawab. Sekiranya semua jawapan adalah batal, maka jawapan akan tetap sebagai batal: FormsAuthenticationWrapper
Atas ialah kandungan terperinci Apa yang dilakukan oleh pengendali tanda tanya (??) dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!