Code Bye

一个if语句 求简化

  private bool verificationLoad(string userName,string userPassword, string clientSessionid)
{
//clientSessionid  这是判断能否登录的id
if (clientSessionid != null)
{
// 验证sessionid方式 判断登陆  添加参数
if (!IsLoad(clientSessionid))
{
//ReadLocalSessionId()  读取本地记录的登录信息.避免多次登录
clientSessionid = ReadLocalSessionId();
if (IsLoad(clientSessionid))
{
return true;
}
if (userPassword != null)
{
//自动登录
UserLoagForm userLoagForm = new UserLoagForm();
string LoginResultInfo = userLoagForm.Login(userName, userPassword);
UserInfo  = Newtonsoft.Json.JsonConvert.DeserializeObject<UserInfo>(LoginResultInfo);
if (string.IsNullOrEmpty(UserInfo.ErrorMsg))
{
return true;
}
}
else
{
//弹出登录窗口
UserLoagForm userLoagForm = new UserLoagForm();
var loagResulet =  userLoagForm.ShowDialog();
if (loagResulet != DialogResult.Cancel && string.IsNullOrEmpty(userLoagForm.loginInfo.ErrorMsg))
{
return true;
}
}
}
else
{
return true;
}
}
else if (userPassword == null)
{
clientSessionid = ReadLocalSessionId();
if (IsLoad(clientSessionid))
{
return true;
}
//弹出登录窗口
UserLoagForm userLoagForm = new UserLoagForm();
var loagResulet = userLoagForm.ShowDialog();
if (loagResulet != DialogResult.Cancel && string.IsNullOrEmpty(userLoagForm.loginInfo.ErrorMsg))
{
return true;
}
}
else
{
//自动登录
UserLoagForm userLoagForm = new UserLoagForm();
string LoginResultInfo = userLoagForm.Login(userName, userPassword);
UserInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<UserInfo>(LoginResultInfo);
if (string.IsNullOrEmpty(UserInfo.ErrorMsg))
{
return true;
}
}
return false;
}
这个 方法本人觉得很不对劲. 虽然功能上没有问题,但是看起来非常杂乱.应该是有方法可以让这个看起来不是那么复杂的.本人转不过弯弯来.. 在此求帮助.忘高手指点.
解决方案

60


本人做的身份证验证部分就这么干了,本来也是if嵌套了5层吧

5

一个语句的if,把花括号去掉,看上去好很多。

5

封装好你的方法,然后在一个if里面去判断喽至于是if(a&&b)还是if(a或b)这个具体看你后面的需求了

10

这样子看着确实很乱,可以整理一下。建议:
1、把部分内用抽出来,弄成一个一个方法,这样能使主程序看起来更简介些
2、优化一下逻辑,有时候逻辑的优化能剩下不少工作

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明一个if语句 求简化