public int Queue()
{
using (Entities server = new Entities())
{
var ServerId1 = (from serverID in server.AppPM_Patches
where serverID.PatchStatus == "NotStarted" && serverID.ServerId == 1
select serverID.ServerId).Count();
var ServerId2 = (from serverID in server.AppPM_Patches
where serverID.PatchStatus == "NotStarted" && serverID.ServerId == 2
select serverID.ServerId).Count();
var ServerId3 = (from serverID in server.AppPM_Patches
where serverID.PatchStatus == "NotStarted" && serverID.ServerId == 3
select serverID.ServerId).Count();
if (ServerId1 == 0 && ServerId2 == 0 && ServerId3 == 0)
{
return ServerId1;//Convert.ToInt32(ServerId1);
}
else if (ServerId1 == 1 && ServerId2 == 0 && ServerId3 == 0)
{
return ServerId2;
}
else if (ServerId1 == 1 && ServerId2 == 1 && ServerId3 == 0)
{
return ServerId3;
}
else if (ServerId1 > ServerId2 && ServerId1 > ServerId3)
{
if (ServerId2 > ServerId3)
{
return ServerId3;
}
else
{
return ServerId2;
}
}
else if (ServerId2 > ServerId3 && ServerId2 > ServerId1)
{
if (ServerId1 > ServerId3)
{
return ServerId3;
}
else
{
return ServerId1;
}
}
else if (ServerId3 > ServerId1 && ServerId3 > ServerId2)
{
if (ServerId1 > ServerId2)
{
return ServerId2;
}
else
{
return ServerId1;
}
}
else if (ServerId1 == ServerId2 && ServerId2 == ServerId3 && ServerId1 == ServerId3)
{
return ServerId1;
}
else if (ServerId1 == ServerId2 && ServerId1 > ServerId3 && ServerId2 > ServerId3)
{
return ServerId3;
}
else if (ServerId2 == ServerId3 && ServerId2 > ServerId1 && ServerId3 > ServerId1)
{
return ServerId1;
}
else if (ServerId1 == ServerId3 && ServerId1 > ServerId2 && ServerId1 > ServerId3)
{
return ServerId1;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在方法中得到错误(并非所有代码路径返回值).此方法返回我已定义的int值.但即使我返回了一个int值,也不知道为什么会发生这个错误.任何人都可以帮助我吗?
你有if一堆和一堆else if语句,但你没有else声明.就编译器而言,完全可以想象if不会满足任何条件.在这种情况下,该方法没有返回值.
您可以在else语句中返回值,也可以在if构造后返回值.或者,如果代码确实永远不会在if不满足任何条件的情况下退出语句,那么您可以在方法结束时抛出异常以指示存在错误.例外是方法的可接受退出策略.