我正在創建下面的方法,它返回一個標準化的十進制值。 AngleUnits是一個包含Degrees,Gradians,Radians和Turns的枚舉。然而,在實現此代碼後,我得到「Angle.Normalize(...)並非所有代碼路徑都返回值」。不知道我在這裏丟失了什麼,因爲我正在返回小數值。提前致謝。C#方法不是所有的代碼路徑都返回一個值
private static decimal Normalize(decimal value, AngleUnits units)
{
decimal normalizedValue;
switch (units)
{
case AngleUnits.Degrees:
if (value >= 0 && value <= 360)
{
normalizedValue = value;
return normalizedValue;
}
else if (value < 0)
{
value = value + 360;
normalizedValue = value;
return normalizedValue;
}
else if (value > 360)
{
value = value - 360;
normalizedValue = value;
return normalizedValue;
}
break;
case AngleUnits.Gradians:
if (value >= 0 && value <= 400)
{
normalizedValue = value;
return normalizedValue;
}
else if (value < 0)
{
value = value + 400;
normalizedValue = value;
return normalizedValue;
}
else if (value > 400)
{
value = value - 400;
normalizedValue = value;
return normalizedValue;
}
break;
case AngleUnits.Radians:
if (value >= 0 && value <= twoPi)
{
normalizedValue = value;
return normalizedValue;
}
else if (value < 0)
{
value = value + twoPi;
normalizedValue = value;
return normalizedValue;
}
else if (value > twoPi)
{
value = value - twoPi;
normalizedValue = value;
return normalizedValue;
}
break;
case AngleUnits.Turns:
if (value >= 0 && value <= 1)
{
normalizedValue = value;
return normalizedValue;
}
else if (value < 0)
{
value = value + 1;
normalizedValue = value;
return normalizedValue;
}
else if (value > 1)
{
value = value - 1;
normalizedValue = value;
return normalizedValue;
}
break;
}
}
謝謝你解決了我的問題。 – goku9384