Nic*_*GPS 6 if-statement coding-style
我有一些代码的例子,我经常在网站上看到我希望改进并希望得到一些帮助.我经常在page_load方法中看到5-10个嵌套的if语句,旨在消除无效的用户输入,但这看起来很难看,难以阅读和维护.
您如何建议清理以下代码示例?我试图消除的主要是嵌套的if语句.
string userid = Request.QueryString["userid"];
if (userid != ""){
user = new user(userid);
if (user != null){
if (user.hasAccess){
//etc.
}
else{
denyAccess(INVALID_ACCESS);
}
}
else{
denyAccess(INVALID_USER);
}
}
else{
denyAccess(INVALID_PARAMETER);
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,这很快就会变得非常混乱!在这种情况下,我应该遵循任何模式或做法吗?
lem*_*mon 20
通过使用Guard Clauses先生
string userid = Reuest.QueryString["userid"];
if(userid==null)
return denyAccess(INVALID_PARAMETER);
user = new user(userid);
if(user==null)
return denyAccess(INVALID_USER);
if (!user.hasAccess)
return denyAccess(INVALID_ACCESS);
//do stuff
Run Code Online (Sandbox Code Playgroud)
PS.使用return或抛出错误