无法将类型float隐式转换为bool奇怪错误

  • 本文关键字:bool 错误 转换 类型 float c#
  • 更新时间 :
  • 英文 :


我正在尝试将浮点变量与字典键的值进行比较。但我得到了一个错误,说它不能从float转换为bool。字典的值是一个无符号整数,我将其转换为浮点值。

    void RunAnimation()
    {
        float aloop = (float)AnimationLoop[CurrentAnimation];
        if(frame%aloop)
        {
        }
    }

这样做会在if语句上导致一个错误,即"无法将类型'float'隐式转换为'bool'"。但这两种价值观显然都是浮动的,我不明白它是如何产生其他东西的。

您可以在C/C++中执行此操作,但不能在C#中执行。你需要写这个:

if ((frame % aloop) != 0)

在C/C++中,bool实际上只是一个0(false)或其他值(true)的数值。在您的情况下,frame % aloop将是C/C++中的"有效布尔"。

另一方面,C#确实需要一个bool表达式,但是frame % aloop的计算结果是数字类型。因此出现了错误。

相关内容

最新更新