VB.NET:输入字符串格式不正确

1 .net vb.net string format iif

使用以下代码段

Foo = IIf(String.IsNullOrEmpty(txtFoo.Text), 0, Integer.Parse(txtFoo.Text.Trim))
Run Code Online (Sandbox Code Playgroud)

当我提交没有值的字段时,我收到错误:"输入字符串的格式不正确." 我没有任何空格或其他东西,String.IsNullOrEmpty(txtFoo.Text)返回true.怎么了?谢谢.

Mar*_*rtW 5

IIF将评估:

Integer.Parse(txtFoo.Text.Trim) 
Run Code Online (Sandbox Code Playgroud)

不论是否:

String.IsNullOrEmpty(txtFoo.Text) 
Run Code Online (Sandbox Code Playgroud)

是或否(因为它只是一个传递给它的三个参数的函数,所以所有参数都必须有效).所以即使txtFoo.text is empty在这种情况下,它仍然试图将其解析为整数.

如果你正在使用VS2008,你可以使用IF运算符代替它,因为你期望IIF这样做会短路.