Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengendalikan Tugasan Operator Bersyarat dengan Jenis Nullable dalam C#?
Dalam percubaan untuk memudahkan kod, pembangun sering menghadapi cabaran apabila memberikan nilai kepada sifat dengan jenis boleh batal menggunakan pengendali bersyarat. Coretan kod berikut menunjukkan isu ini:
EmployeeNumber = string.IsNullOrEmpty(employeeNumberTextBox.Text) ? null : Convert.ToInt32(employeeNumberTextBox.Text),
Dalam senario ini, EmployeeNumber ialah Nullable
Tiada penukaran tersirat antara 'null ' dan 'int'
Walaupun hakikatnya kedua-duanya batal dan int ialah nilai yang sah untuk integer nullable, pengkompil tidak boleh menentukan jenis ungkapan berdasarkan nilai benar/palsu semata-mata.
Untuk menyelesaikan isu ini, seseorang mesti secara eksplisit menghantar salah satu nilai ke nullable yang dikehendaki jenis, membenarkan pengkompil untuk menentukan ungkapan jenis:
EmployeeNumber = string.IsNullOrEmpty(employeeNumberTextBox.Text) ? (int?)null : Convert.ToInt32(employeeNumberTextBox.Text),
atau
EmployeeNumber = string.IsNullOrEmpty(employeeNumberTextBox.Text) ? null : (int?)Convert.ToInt32(employeeNumberTextBox.Text),
Pengubahsuaian ini memastikan bahawa jenis ungkapan disimpulkan dengan betul, membenarkan pengendali bersyarat digunakan seperti yang dimaksudkan.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Tugasan Operator Bersyarat dengan Jenis Nullable dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!