分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

VB.Net中的三元运算符

发布时间:2023-09-06 02:33责任编辑:董明明关键词:运算符
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

原文:https://www.cnblogs.com/pfs1314/archive/2011/08/29/2158283.html

VB.Net中的三元运算符

原文地址:https://www.cnblogs.com/alantea/p/10411359.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved