帮忙看一下VB.NET中IIF这样写为什么还会报错啊?

时间:2022-10-28 14:52:55
If IIf(TextBox1.Text = "", 0, CInt(TextBox1.Text)) > 2 Then
   .......
End If

为什么当TextBox1.Text=""的时候还会报错呢?
难道当TextBox1.Text="" =True的时候,还会去执行CInt(TextBox1.Text)) 吗?

如果我写的不对的话,应该怎么写才对呢?

好多年没用过VB了,VB.NET更是没用过,这里应该怎么写啊?
就是当TextBox1.Text=""的时候把它当0来看

谢谢

8 个解决方案

#1


你判断得很对,改用
IF……THEN

ELSE

END IF

#2


以下你的代码:
If IIf(TextBox1.Text = "", 0, CInt(TextBox1.Text)) > 2 Then
   .......
End If
iif(bool表达式,返回1,返回2)
计算过程是:
计算:bool表达式
计算:返回1的表达式 0
计算:返回2的表达式 CInt(TextBox1.Text) 当TextBox1.Text = "" 的时候这个表达式就异常了
返回表达式1或者表达式2。

#3


up

#4



你的TextBox1.Text是否是NULL,NULL与""可不一样,你可试试这样:

If IIf(TextBox1.Text is nothing, 0, CInt(TextBox1.Text)) > 2 Then
   .......
End If

#5


If IIf(TextBox1.Text = "", 0, CInt(TextBox1.Text)) > 2 Then
   .......
End If

这格的执行顺序是先执行CInt(TextBox1.Text),也就是说无论TextBox1.Text是否=“”,都要执行
CInt(TextBox1.Text)

#6


那可真麻烦

#7


会去执行的

这样子就不会出错了。
If IIf("" & TextBox1.Text = "", 0, CInt("" & TextBox1.Text)) > 2 Then
   .......
End If

#8


这个问题可以不用IIF嘛!
像这样也可以啊!
If CInt("0" & TextBox1.Text)>2 then
     …………
End If
这样如果TextBox1.Text=""的话表达式就会等于0
页TextBox1.Text<>""的话表达式就会等于相应的数值!!
如:TextBox1.Text="" Then "0" & TextBox1.Text="0" CInt("0" & TextBox1.Text)=0
    TextBox1.Text="1" Then "0" & TextBox1.Text="01" CInt("0" & TextBox1.Text)=1

#1


你判断得很对,改用
IF……THEN

ELSE

END IF

#2


以下你的代码:
If IIf(TextBox1.Text = "", 0, CInt(TextBox1.Text)) > 2 Then
   .......
End If
iif(bool表达式,返回1,返回2)
计算过程是:
计算:bool表达式
计算:返回1的表达式 0
计算:返回2的表达式 CInt(TextBox1.Text) 当TextBox1.Text = "" 的时候这个表达式就异常了
返回表达式1或者表达式2。

#3


up

#4



你的TextBox1.Text是否是NULL,NULL与""可不一样,你可试试这样:

If IIf(TextBox1.Text is nothing, 0, CInt(TextBox1.Text)) > 2 Then
   .......
End If

#5


If IIf(TextBox1.Text = "", 0, CInt(TextBox1.Text)) > 2 Then
   .......
End If

这格的执行顺序是先执行CInt(TextBox1.Text),也就是说无论TextBox1.Text是否=“”,都要执行
CInt(TextBox1.Text)

#6


那可真麻烦

#7


会去执行的

这样子就不会出错了。
If IIf("" & TextBox1.Text = "", 0, CInt("" & TextBox1.Text)) > 2 Then
   .......
End If

#8


这个问题可以不用IIF嘛!
像这样也可以啊!
If CInt("0" & TextBox1.Text)>2 then
     …………
End If
这样如果TextBox1.Text=""的话表达式就会等于0
页TextBox1.Text<>""的话表达式就会等于相应的数值!!
如:TextBox1.Text="" Then "0" & TextBox1.Text="0" CInt("0" & TextBox1.Text)=0
    TextBox1.Text="1" Then "0" & TextBox1.Text="01" CInt("0" & TextBox1.Text)=1