我的LoginSystem有一个单元测试,它失败了,我不知道为什么,在我看来我认为我的代码是正确的,它似乎在过去几周工作,我只是通过单元测试发现了这个错误。
public bool matchCheck(string Username, string Password)
{
//create a new bool and set it to false.
bool returnvar = false;
//for each basemember in the list of members.
foreach (BaseMember bm in hillracing.Members)
{
//if the username is equal to a list item username AND the password is also equal.
if (Username == bm.userName && Password == bm.passWord)
{
//they exist within the same object, so return true.
returnvar = true;
}
else
{
throw new Exception(" Did not match!");
}
}
//return this bool, true or false.
return returnvar;
}
有人能告诉我为什么我的异常总是被抛出?感谢。
答案 0 :(得分:2)
您将一个用户名和密码与一整套用户名和密码进行比较。根据定义,整个集合中只有一个项目应评估为true
,其余项目应评估为false
。在您的情况下,您在第一次评估false
时会抛出异常。
答案 1 :(得分:0)
在旁注中,评论如下:
//创建一个新的bool并将其设置为false。
bool returnvar = false;
应该避免,因为代码会自行说明。无用的注释不会为代码添加任何值,而是产生负面影响。
答案 2 :(得分:0)
如果您希望改进例程,那么考虑在找到匹配时返回true,如果它到达循环结束,返回false或抛出异常。我个人的偏好是避免抛出异常,除非它实际上是例外。