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 '