是否有一个3-cased(小于零,大于零,零)的内置函数?

tmi*_*hty 2 c# math

我想问一下是否有一个内置的C#语句允许我用更少的代码行编写以下内容:

float fH = Input.GetAxis("Horizontal"); //doesn't really matter where this comes from, but in this case, it's the user's input on a joystick

if (fH < 0)
{
    fH = -1;
}
else if (fH > 0)
{
    fH = 1;
}
else
{
    //don't change anything
}
Run Code Online (Sandbox Code Playgroud)

据我所知,我不能用

fH = if(...)
Run Code Online (Sandbox Code Playgroud)

因为这只允许2个案例,而我需要3个案例(小于0,大于0或0).

jon*_*sca 7

Math.Sign将返回输入是正数,负数还是0,只有一个语句(根本不需要if).

Math.Sign(-2) 
-1
Math.Sign(-3.3)
-1
Math.Sign(3)
1
Math.Sign(0)
0
Run Code Online (Sandbox Code Playgroud)

它返回一个int32,您可以像往常一样重新分配给您float.

fH = Math.Sign(fH);