恐怕这是一个愚蠢的问题,但我必须假设我已经编写 VB.Net 太长时间了,现在不知道如何转换它C# 空合并运算符 http://msdn.microsoft.com/en-US/library/ms173224%28v=vs.80%29进入VB.Net:
if( Convert.ToBoolean(ViewState[tp.UniqueID + "_Display"] ?? true) == false ){}
我知道IIF 函数 http://msdn.microsoft.com/en-us/library/27ydhh0d%28v=vs.71%29.aspx但我不确定如何在这里使用它以及它是否给出正确的结果(在 IIF 中两个表达式都正在被评估)。请帮助照亮黑暗。
EDIT: 如果你想看看这个的来源:论坛.asp.net http://forums.asp.net/p/1620618/4172293.aspx#4172293在那里你可以看到一个解决方案,它生成一个Option Strict On disallows implicit conversions from 'Object' to 'Boolean'
编译器异常。
你想要的如果运算符 http://msdn.microsoft.com/en-us/library/bb513985%28v=VS.90%29.aspx(不是 IIF 函数)。它可以用作两者的等价物?:
条件运算符和??
C# 中的 null 合并运算符,具体取决于传递的是 3 个参数还是 2 个参数
你真的想要这样的东西:
If Not ViewState[tp.UniqueID + "_Display"] is Nothing AndAlso Not CType(ViewState[tp.UniqueID + "_Display"],Boolean) Then
End If
这至少仍然会让你短路。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)