gpt4 book ai didi

c# - 如何对两个字节值使用 C# 的三元运算符?

转载 作者:太空狗 更新时间:2023-10-29 18:02:00 27 4
gpt4 key购买 nike

似乎没有办法像这样在两个字节上使用 C# 的三元运算符:

byte someByte = someBoolean ? 0 : 1;

该代码目前无法编译,显示“无法将源类型‘int’转换为目标类型‘byte’”,因为编译器将数字视为整数。显然没有指定的后缀来指示 0 和 1 是字节,因此唯一的解决方法是 (a) 将结果转换为字节或 (b) 毕竟使用 if-else 控件。

有什么想法吗?

最佳答案

byte someByte = someBoolean ? (byte)0 : (byte)1;

强制转换在这里不是问题,事实上,IL 代码根本不应该有强制转换。

编辑:生成的 IL 如下所示:

L_0010: ldloc.0          // load the boolean variable to be checked on the stack
L_0011: brtrue.s L_0016 // branch if true to offset 16
L_0013: ldc.i4.1 // when false: load a constant 1
L_0014: br.s L_0017 // goto offset 17
L_0016: ldc.i4.0 // when true: load a constant 0
L_0017: stloc.1 // store the result in the byte variable

关于c# - 如何对两个字节值使用 C# 的三元运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1890390/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com