Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengendalikan Ketidakpadanan Jenis Nullable dalam Tugasan Operator Bersyarat?

Bagaimana untuk Mengendalikan Ketidakpadanan Jenis Nullable dalam Tugasan Operator Bersyarat?

Susan Sarandon
Lepaskan: 2025-01-16 16:22:12
asal
886 orang telah melayarinya

How to Handle Nullable Type Mismatches in Conditional Operator Assignments?

Tugaskan menggunakan pengendali bersyarat bagi jenis yang boleh dibatalkan

Soalan:

Pengkompil menghadapi ralat tidak padan jenis apabila menggunakan operator bersyarat untuk menetapkan nilai kepada jenis yang boleh dibatalkan. Contohnya, apabila cuba memberikan integer boleh batal (EmployeeNumber) kepada nilai kotak teks (employeeNumberTextBox.Text), ralat "Tiada penukaran tersirat antara 'null' dan 'int'" berlaku.

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>
Salin selepas log masuk

Sebagai alternatif, transformasi boleh digunakan pada nilai lain:

<code class="language-csharp">EmployeeNumber =
    string.IsNullOrEmpty(employeeNumberTextBox.Text)
    ? null
    : (int?)Convert.ToInt32(employeeNumberTextBox.Text);</code>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan