我正在尝试为我的网络服务创建一个方法,但我收到标题中列出的此错误
使用未分配的局部变量'totalroadtax'
这就是用户必须输入2个不同的变量来触发web方法中的方法
[WebMethod]
public double RoadTax(int engineCapacity, int vehicleAge)
{
double totalroadtax;
if (engineCapacity.Equals("600") && vehicleAge.Equals("12"))
{
totalroadtax = ((200.00 * 0.782) * (1.10));
}
return totalroadtax;
//return (engineCapacity - vehicleAge);
}
Run Code Online (Sandbox Code Playgroud)
我在我的方法中声明了我的totalroadtax,输入了一些caluclation方法并返回值.我检查了有关此方法的必要信息,但我仍然收到错误.我在这里留下了什么吗?
该if
可跳过(如果条件是假的),你就回来totalroadtax
.该变量未在该点初始化,因为您声明它没有初始值.
您应该使用一些初始值声明变量,例如:
double totalroadtax = 0;
Run Code Online (Sandbox Code Playgroud)
编辑:
您的代码不必要地将int
值与string
文字进行比较.以这种方式执行条件更干净,更有效:
[WebMethod]
public double RoadTax(int engineCapacity, int vehicleAge)
{
double totalroadtax = 0;
if (engineCapacity == 600 && vehicleAge ==12)
{
totalroadtax = ((200.00 * 0.782) * (1.10));
}
return totalroadtax;
}
Run Code Online (Sandbox Code Playgroud)
无需调用Equals()
- ==
操作员读取更好,并执行类型安全检查.
我还建议您不要对浮点值执行直接相等性检查.而不是使用==
,你应该真正检查像:
if ( (engineCapacity >599.9999 && engineCapacity < 600.00001) && ...
Run Code Online (Sandbox Code Playgroud)
这是因为浮点值不是分数的精确表示.
阅读此问题了解更多详情.
归档时间: |
|
查看次数: |
193 次 |
最近记录: |