Csharp等效的signed char

时间:2017-12-05 15:14:29

标签: c# c++

我在C ++中有以下行

 signed char const ix((delta_x > 0) - (delta_x < 0));

如果有人可以在CSharp中写上述内容,我会很高兴。

提前致谢!

1 个答案:

答案 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 ++中使用更清晰的表达式,此时隐式转换不可读且易于理解。