我在C ++中有以下行
signed char const ix((delta_x > 0) - (delta_x < 0));
如果有人可以在CSharp中写上述内容,我会很高兴。
提前致谢!
答案 0 :(得分:0)
以下代码
bool a = true;
bool b = false;
bool c = a - b;
在C#中导致此错误:
Operator '-' cannot be applied to operands of type 'bool' and 'bool'
这完全有道理。减去布尔值并不直观。
你的术语在C ++中起作用,但它仍然是不好的做法imho。
这是你可能想要的C#:
bool a = delta_x > 0;
bool b = delta_x < 0;
sbyte c = (sbyte) ((a ? 1 : 0) - (b ? 1 : 0));
您还应该在C ++中使用更清晰的表达式,此时隐式转换不可读且易于理解。