vb.net中的if运算符出现错误

vb.net中的if运算符出现错误,vb.net,Vb.net,我的代码中有一行notes=If(IsDBNull(notes),“”,“”)。当我尝试在本地主机上运行它时 我在第51行得到错误: 描述:编译服务此请求所需的资源时出错。请查看以下特定错误详细信息,并适当修改源代码 但是,当相同的代码移植到生产环境中时,它运行时没有任何故障,您知道为什么吗?您的意思是: IIf(IsDBNull(notes),"","") 注意额外的I 如果语句声明为您在第53行看到的语句: If <condition> Then VB.NET 2008引入了

我的代码中有一行
notes=If(IsDBNull(notes),“”,“”)
。当我尝试在本地主机上运行它时

我在第51行得到错误:

描述:编译服务此请求所需的资源时出错。请查看以下特定错误详细信息,并适当修改源代码

但是,当相同的代码移植到生产环境中时,它运行时没有任何故障,您知道为什么吗?

您的意思是:

IIf(IsDBNull(notes),"","")
注意额外的I

如果语句声明为您在第53行看到的语句:

If <condition> Then

VB.NET 2008引入了操作符,该操作符将短路——也就是说,只对if-true和if-false表达式中的一个进行计算

在此之前,可用的只有函数,作为一个函数,它总是计算if-true和if-false表达式

看起来您的生产箱使用的是VB.NET 2008或更高版本,而您的本地计算机使用的是VB.NET 2005或更早版本。

问题是VS 2008引入了,但您正在编译到.NET Framework版本:2.0

这将在.NET 2上编译:

Dim notesObj As Object = IIf(IsDBNull(notes),"","")
不同之处在于
IIF
返回一个对象,而
如果
是强类型(),则可以编写:

Dim notesStr = If(IsDBNull(notes),"","") ' a string '

@OP:旁注:您正在分配
字符串。在任何情况下都为空,是否需要?
Dim notesObj As Object = IIf(IsDBNull(notes),"","")
Dim notesStr = If(IsDBNull(notes),"","") ' a string '