VB.Net中的null coalesce operator(8)

Tim*_*ter 3 c# vb.net visual-studio-2005 conditional-operator

我担心这是一个愚蠢的问题,但我必须假设我已经编程了VB.Net太长时间,现在无法弄清楚如何将这个C#null合并运算符转换为VB.Net:

if( Convert.ToBoolean(ViewState[tp.UniqueID + "_Display"] ?? true) == false ){}
Run Code Online (Sandbox Code Playgroud)

我知道IIF函数,但我不知道如何在这里使用它,如果它给出了正确的结果(在I​​IF中,两个表达式都在评估中).请帮助揭开黑暗的光芒.

编辑:如果你想看到这个的来源:forums.asp.net 在那里你可以看到一个生成Option Strict On disallows implicit conversions from 'Object' to 'Boolean'编译器异常的解决方案.

Dam*_*ver 5

你想要If运算符(不是IIF函数).它可以用作C#中?:条件运算符和??空合并运算符的等价物,具体取决于它是通过3个参数还是2个


你真的想要这样的东西:

If Not ViewState[tp.UniqueID + "_Display"] is Nothing AndAlso Not CType(ViewState[tp.UniqueID + "_Display"],Boolean) Then

End If
Run Code Online (Sandbox Code Playgroud)

这至少还会让你短路.