VB.Net中的三元运算符
2011-08-29 15:48
881 查看
IIf(expr, truepart, falsepart) 参数描述 : expr 必要参数。用来判断真伪的表达式。 truepart 必要参数。如果 expr 为 True,则返回这部分的值或表达式。 falsepart 必要参数。如果 expr 为 False,则返回这部分的值或表达式。 Note:使用IIF时,不管expr是真还是假,后面的truePart和falsepart都会进行计算,虽然它只返回其中的一个。 例如,如果 falsepart 产生一个被零除错误,那么程序就会发生错误,即使 expr 为 True。 原来它对每个表达式都会进行计算,如果某一项为DBnull则就会抛出异常,所以在进行非空判断时应该用if的形式,而不应该用iif 比如下面两行代码,有可能就会抛异常
Me.TextBoxOLevelYear12.Text = IIf(myExamResultsDT.Item(11) Is Nothing, String.Empty, myExamResultsDT.Item(11).O_YEAR)
Me.TextBoxOLevelYear3.Text = IIF(NmyExamResultsDT.Rows.Count>0, NmyExamResultsDT.Rows(0)("O_YEAR"),String.Empty)
PS: IIF只是类似三元运算符,但并非一样,像上面的代码如果在C#用三元运算符?:判断肯定就没问题。 IIF并不是完全没有用,它有它的特色。比如直接返回常量a=iif(LogicPart,1,2), 在这个时候IIF语法就比IF清晰得多,而且效率更高。
顺便提下循环结构的使用:
For index As Integer = 1 To myExamResultsDT.Rows.Count gradeList.Add(codeTableOLevelGradeDS.TP_CODE.Select("IS_EXPIRED='N' AND CODE='" + myExamResultsDT.Item(index).O_GRADE_CODE + "'", "CODE")) index += 1 Next
For Each myCodeDR In effecDS.TP_CODE.Rows If myCodeDR.CODE = "G11" Then Me.DropDownListOLevelSubject1.Items.Add(New ListItem(myCodeDR.CODE + " - " + myCodeDR.CODE_DESC, myCodeDR.CODE)) End If Next
相关文章推荐
- VB.NET 美化HTML代码
- vb.net 教程 3-7 窗体编程 菜单和工具栏 2 ContextMenuStrip
- Beginning DotNetNuke 4.0 Website Creation in VB 2005 with Visual Web Developer 2005 Express: From No
- VB.NET与C#.NET的区别(转)
- VB.net总结
- [轉]vb.net与c#相互转换工具(downmoon)
- VB.NET FORM窗口透明度
- VB.Net检查进程是否存在及关闭进程
- VB.Net - 运算符
- VB.net实现sql数据库的备份与恢复
- Public Key Token Generation Algorithm in VB.NET
- 完整的VB.NET的语法解析程序
- VB.NET安装部署
- vb.net中的一个组合函数
- vb.net 中通过反射实现简单工厂模式
- ASP.NET(VB.NET)学习笔记--第六章.访问数据库(1/3)
- vb.net 中MDI子窗体对其父窗体属性的获取与修改
- 【转】VB6和VB.NET的区别
- 水晶报表相关代码--VB.NET
- vb.net 登录access源代码【原创】