【问题标题】:Csharp equivalent of signed char const [closed]Csharp 等效于 signed char const [关闭]
【发布时间】:2017-12-05 15:14:28
【问题描述】:

我在 C++ 中有以下行

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

如果有人可以在 CSharp 中写出上述代码,我会非常高兴。

提前致谢!

【问题讨论】:

  • 我试过了,但还是有一些错误,你能提供代码
  • 你打算在哪里使用这个?您真的需要准确的翻译吗?
  • 学会像程序员一样思考。不要添加您仍然收到错误的评论。确切的错误文本应该在您的原始问题中。帮助新手是不值得的。他们提出了不好的问题,然后当您从他们那里哄骗相关信息并回答问题时,他们通常不会给予您信任。
  • @JonathanWood 我认为这对许多新手来说有点苛刻。他们中的许多人非常愿意花一些精力来解决问题并遵守网站规则和礼仪。

标签: c# c++


【解决方案1】:

以下代码

    bool a = true;
    bool b = false;
    bool c = a - b;

在 C# 中导致此错误:

 Operator '-' cannot be applied to operands of type 'bool' and 'bool'

这完全有道理。布尔值的减法并不直观。

您的术语在 C++ 中确实有效,但恕我直言,这仍然是不好的做法。

这可能是您在 C# 中想要的:

    bool a = delta_x > 0;
    bool b = delta_x < 0;
    sbyte c = (sbyte) ((a ? 1 : 0) - (b ? 1 : 0));

您还应该在 C++ 中使用更清晰的表达式,此时隐式转换不可读且易于理解。

【讨论】:

  • 与其按原样翻译代码,不如理解代码在做什么并适当地重写以使其更易于理解——例如sbyte ix = (sbyte)Math.Sign(delta_x);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-31
  • 1970-01-01
相关资源
最近更新 更多