我正在尝试将浮点变量与字典键的值进行比较。但我得到了一个错误,说它不能从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
的计算结果是数字类型。因此出现了错误。