我有以下代码触发器CA2233警告“更正方法Foo中的'latitudeBam * 90'操作中的潜在溢出”
double Foo(int latitudeBam)
{
var latitudeInDegrees = (latitudeBam * 90) / (double)int.MaxValue;
return latitudeInDegrees;
}
我不确定警告在哪里。是因为latitudeBam的值可能接近int.MaxValue,从而溢出了int.MaxVlaue,还是因为与从int.MaxValue到dobule的转换有关?
答案 0 :(得分:0)
您的第一个理论是正确的:您的计算可能会溢出int.MaxValue
,因为它将任何当前int值乘以90。实际上,当您的方法为latitudeBam
时,int.MaxValue
可能已经等于My unauthorized mobile app
叫。