有很多人包阔我在前台总会出现大批的if else判断自己看的很脏
各种场景都有如:举例子
用户场景
if(如果用户帐号密码正确)
{
//就判定用户是否锁定
if(如果用户没被锁定)
{
if(如果用户今天是第一次登陆)
{
//...就给用户送5个积分
}
}
else
{
//...失败提示信息
}
}
else
{
//...失败提示信息
}
---------订单场景------
if(如果定单未支付)
{
1:支付确认按钮设置可用
2:发货按钮设置不可用
3:到货确认按钮设置不可用
}
else if(如果定单已经支付)
{
1:支付确认按钮设置不可用
2:发货按钮设置可用
3:到货确认按钮设置不可用
}
else if(如果定单已发货)
{
1:支付确认按钮设置不可用
2:发货按钮设置不可用
3:到货确认按钮设置可用
}我这里写了2个场景 有时候逻辑复杂点if else 把自己否搞晕了!请教大牛们你们是如何设计 最好提供相关代码学习下
谢谢!
各种场景都有如:举例子
用户场景
if(如果用户帐号密码正确)
{
//就判定用户是否锁定
if(如果用户没被锁定)
{
if(如果用户今天是第一次登陆)
{
//...就给用户送5个积分
}
}
else
{
//...失败提示信息
}
}
else
{
//...失败提示信息
}
---------订单场景------
if(如果定单未支付)
{
1:支付确认按钮设置可用
2:发货按钮设置不可用
3:到货确认按钮设置不可用
}
else if(如果定单已经支付)
{
1:支付确认按钮设置不可用
2:发货按钮设置可用
3:到货确认按钮设置不可用
}
else if(如果定单已发货)
{
1:支付确认按钮设置不可用
2:发货按钮设置不可用
3:到货确认按钮设置可用
}我这里写了2个场景 有时候逻辑复杂点if else 把自己否搞晕了!请教大牛们你们是如何设计 最好提供相关代码学习下
谢谢!
case
调整下结构,会看的更清楚点
if(密码不正确){
//错误
return false;
}if(用户被锁定){
// 错误
return false;
}if(第一次登录){
// 送5个积分
}
return true;
根据你的大概意思 可缩写成如下一行代码登录成功 =true ? (第一次登录=true?送分:"xxx") : 提示失败
var i = 0; j = 0;
a && (i = 5);
a || (j = 5);
alert(i);
alert(j);
//上面的语句的意思就是
if(a){
i = 5;
}
if(!a){
j = 5;
}
//&& 和 || 可以结合使用。不过这样就不容易看懂了。
和提取公共方法.
这个也不错,不用SWITCH可以用这个
case
/// 登录
/// </summary>
/// <param name="code">代理商工号</param>
/// <param name="pwd">密码明文</param>
/// <returns></returns>
public AgentInfo Login(string code, string pwd)
{
if (string.IsNullOrEmpty(code))
throw new Exception("代理商工号不能为空");
if (string.IsNullOrEmpty(pwd))
throw new Exception("密码不能为空");
AgentInfo agent = this.Get(code);
if (agent == null)
throw new Exception("没有这个代理商编号");
pwd = this.MD5(pwd.ToLower());
if (!agent.Password.Equals(pwd))
throw new Exception("密码错误");
//...
OnAfterLogin(new AgentEventArgs(agent));
return agent;
}private void Logon(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(chk.Text))
{
ltl_note.Text = "验证码不能为空";
}
else if (chk.Text.ToLower() != Session[CheckCode.LoginCode].ToString().ToLower())
{
ltl_note.Text = "验证码不正确";
}
else
{
try
{
ags.AfterLogin += new AgentEventHandler(this.CheckLogin);
AgentInfo agent = ags.Login(uid.Text, pwd.Text);
Session[SessionName] = agent;
Response.Redirect("Main.aspx");
}
catch (Exception ex)
{
ltl_note.Text = ex.Message;
}
}
}
private void CheckLogin(object sender, AgentEventArgs e)
{
//试用代理商再判断是不是已经有本区域正式代理商了。
if (e.Agent.Status == AgentStatusDefine.试用)
{
List<AgentInfo> list = ags.List(e.Agent.Area);
if (list != null && list.Count > 0)
{
int count = list.Count(a => a.Status == AgentStatusDefine.正式);
if (count > 0)
{
throw new Exception("本地区已经有正式代理商,试用代理商不能再登);
}
}
}
}
楼主将会长命百岁,生活幸福美满
}else{
楼主只是长命百岁
}
差不多哦!