c# Operator bersyarat dan isu penukaran jenis tersirat
pengendali bersyarat C# (
?:
byte aByteValue; bool aBoolValue = true; aByteValue = aBoolValue ? 1 : 0; // Error: Cannot implicitly convert type 'int' to 'byte'
, yang tidak dapat ditukar secara tersirat kepada A int
. int
byte
Tidak seperti tugasan biasa di mana jenis pembolehubah sasaran menentukan penukaran, pengendali bersyarat mengutamakan jenis cawangannya yang biasa. Dalam kes ini, kedua -dua cawangan secara tersirat boleh ditukar kepada
jenis hasil. int
int
Penyelesaiannya adalah dengan jelas melemparkan ekspresi bersyarat kepada
:
byte
aByteValue = aBoolValue ? (byte)1 : (byte)0; // Correct
Atas ialah kandungan terperinci Mengapa penukaran jenis tersirat gagal dengan pengendali bersyarat C#dan bagaimana ia dapat diselesaikan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!