无法隐式转换类型float到bool奇怪的错误

时间:2015-06-29 14:20:41

标签: c#

我试图将float变量与字典键的值进行比较。但我得到的错误是它无法从float转换为bool。字典的值是一个无符号整数,我将其转换为float。

    void RunAnimation()
    {
        float aloop = (float)AnimationLoop[CurrentAnimation];

        if(frame%aloop)
        {

        }
    }

这样做会导致if语句出现错误"无法隐式转换类型' float'到了' bool'"。但这两个价值观显然是浮动的,我不明白它是如何产生的。

1 个答案:

答案 0 :(得分:3)

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

if ((frame % aloop) != 0)

在C / C ++中,bool实际上只是一个数值,它是0(假)或其他值(真)。在您的情况下,frame % aloop将成为"有效的bool"在C / C ++中。

另一方面,C#确实需要bool表达式,但frame % aloop计算为数字类型。因此错误。