Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengendalikan Ketidakpadanan Jenis Nullable dalam Tugasan Operator Bersyarat?
Tugaskan menggunakan pengendali bersyarat bagi jenis
Soalan:
Pengkompil menghadapi ralat tidak padan jenis apabila menggunakan operator bersyarat untuk menetapkan nilai kepada jenis
Analisis:
Pengendali bersyarat menentukan jenis ungkapan berdasarkan hanya pada nilai benar/salah, tanpa mengira jenis tugasan. Dalam kes ini, nilai null dan int mengakibatkan kekaburan jenis.
Penyelesaian:
Untuk menyelesaikan isu ini, tukar salah satu nilai secara eksplisit kepada nullable
<code class="language-csharp">EmployeeNumber = string.IsNullOrEmpty(employeeNumberTextBox.Text) ? (int?)null : Convert.ToInt32(employeeNumberTextBox.Text);</code>
Sebagai alternatif, transformasi boleh digunakan pada nilai lain:
<code class="language-csharp">EmployeeNumber = string.IsNullOrEmpty(employeeNumberTextBox.Text) ? null : (int?)Convert.ToInt32(employeeNumberTextBox.Text);</code>
Kedua-dua kaedah secara eksplisit menyatakan bahawa jenis nilai pulangan pengendali bersyarat ialah int?
(integer nullable), sekali gus menghapuskan ralat pengkompil. Kaedah yang anda pilih bergantung pada pilihan gaya pengekodan anda, kedua-duanya mempunyai kesan yang sama.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Ketidakpadanan Jenis Nullable dalam Tugasan Operator Bersyarat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!