<Marble:blog runat="server"/>
写法1if ( 条件1 && 条件2){ //代码}写法2if ( 条件1 ){ if( 条件2 ) { //代码 }}我一直认为写法1要比写法2条理清晰,容易阅读.不知其他人如何认为呢?今天在微软的KB中阅读 使用 Visual Basic .NET 在采用基于表单身份验证的 ASP.NET 应用程序中实现基于角色的安全性 的时候发现这样的写法
而且这则KB的VB版本也是这样的写的.这样写有优越性?
posted on 2004-08-21 17:11 武眉博<活靶子.Net> 阅读(5469) 评论(13) 编辑 收藏 所属分类: Asp.Net
第一种方法,简明,容易阅读些~~ if (HttpContext.Current.User != null&&HttpContext.Current.User.Identity.AuthenticationType == "Forms" ) { } 我觉得这样的话,就不太好看啦~~也不容易阅读. 反倒第二种方法简单明了~~ 回复 引用 查看
一个太长的判断是不是显得很拥挤?第二种方法应该很好理解,并且我们习惯把容易不满足条件的判断放在前面。 回复 引用 查看
我在写程序时,选择如何写就是看判断表达式是否很长至难阅读,如果是,就拆开写 回复 引用 查看
如果不判断 HttpContext.Current.User 是否为 null 当HttpContext.Current.User == null HttpContext.Current.User.Identity.AuthenticationType == "Forms" 将产生异常。 欢迎与我交流C#应用心得 回复 引用
楼上的,逻辑运算符都有短路效应,因此你说的情况是不会发生的。 回复 引用 查看
我觉得这个是仁者见仁,智者见智的问题。 这种写法取决于个人习惯以及团队代码规范中的规定。 1、有两个开关,它们之间是串联关系,而且必须打开第一个开关后,然后再打开一个开关灯才亮,如果第一个开关不开,打开了第二个开关,灯也不亮,这时应用: if (.........) { if (..........) { } } 2、有两个开关,它们之间的串联关系,但没有先后顺序,所以就用: if (........) { } if (........) { } 它们都可以用 if (....... 逻辑符号 .....)的形式来表达。 但有时这样写的代码显得太长时,就可以把if语句分割。 但在大一些的项目中,为了方便管理,我的处理方法是:把有子属关系的一定用层次性的if;非同类并且没有子属关系的,用两个if,如果是相同类相同层次的,则用if (XXX && XX)之类的写法。 仅供参考。 回复 引用 查看
我还是看不懂,能不能在解释的清楚一点 最好有个实例(比如判考卷的试题) 回复 引用
我觉得如果分开写还有一个好处,就是不会漏掉逻辑, 这样会提示你,if (false)会怎样? 回复 引用 查看
举个例子吧 '//代码片断 Set rs = conn.Execute("Select UserName,PassWord From UserTable") if Not rs.Eof then if rs("UserName") <> "" then UserName = rs("UserName") end if end if ' //以上两个条件如果放在一起写成 If Not rs.Eof And rs("UserName")<>"" then '//则当记录集为空时,会产生错误. 回复 引用
条件是否分层写,要看情况,不过他这样的写法就感觉别扭 if(!(HttpContext.Current.User == null)) { } 为什么不直接写成 if(HttpContextCurrent.User !=null) { } 还有,if( A !=null && A.Member =="Name") 假设A为null 我觉得也不会异常,没试过,猜的,我想编译器不笨到这地步吧 回复 引用
别瞎鸡巴哔哔 回复 引用
可能是便于做自动单元测试吧! 复合条件不利于做条件覆盖测试。 回复 引用
有些鸡巴就知道在哔哔 把讨论的氛围搞得乌烟瘴气 人渣!! 回复 引用