vb.net 有没有类似这种方法?

L13843199721 2012-06-06 11:19:28
dim b as string ="123"
dim a as string = b="1" ? "0":b
...全文
109 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
L13843199721 2012-06-06
  • 打赏
  • 举报
回复
初学VB.NET 谢谢帮助
hztltgg 2012-06-06
  • 打赏
  • 举报
回复
Visual Basic 2008引入的,关键不是性能,而是短路问题
通过库函数实现,参数必然需要运算,实现不了短路,只能在语言层面实现。
SocketUp 2012-06-06
  • 打赏
  • 举报
回复
哦,原来vb.net的if也有iif的功能了,而且性能比iif好啊
hztltgg 2012-06-06
  • 打赏
  • 举报
回复
msdn里有段话,比较两者的区别,主要是短路运算的区别,c#的?:运算也是短路的。

使用三个参数调用的 If 运算符的工作方式与 IIf 函数相似,只不过该运算符使用短路计算。 IIf 函数始终计算所有三个参数的结果,而具有三个参数的 If 运算符仅计算其中两个参数的结果。 第一个 If 参数将进行计算,并且结果被强制转换为 Boolean 值( True 或 False)。 如果该值为 True,则计算 argument2 并返回其值,但是不计算 argument3。 如果 Boolean 表达式的值为 False,则计算 argument3 并返回其值,但是不计算 argument2。
hztltgg 2012-06-06
  • 打赏
  • 举报
回复
其实不是iif,是if。iif是Interaction的一个方法,c#也可以用,if才是运算符,和c#的if类似。
注意不要和If...Then...Else 语句混淆。
你可以看看一下

Dim a = If(1 = 1, 1, 1)
Dim b = IIf(1 = 1, 1, 1)

If是关键字,ide里颜色会变,IIf不是关键字,颜色不会变。


If 运算符
使用短路计算按条件返回两个值中的一个。可以使用三个参数或两个参数调用 If 运算符。

Interaction.IIf 方法
根据表达式的计算结果,返回两个对象中的一个。

SocketUp 2012-06-06
  • 打赏
  • 举报
回复
IIF

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧