A) (Int32)X | ((Int32)Y << 16)
;
B) (Int32)X + (Int32)Y * (Int32)Int16.MaxValue
;
Sollten nicht beide gleichwertig sein? Ich weiß vom Testen, dass die erste wie erwartet funktioniert, aber aus irgendeinem Grund tut die zweite nicht. Sowohl X als auch Y sind Kurzschlüsse ( Int16
), und der Rückgabetyp ist eine ganze Zahl ( Int32
).
Sollte nicht Y << 16
<=> Y * Int16.MaxValue
?