空字符串的奇怪情况

Kob*_*kie 1 c# vb.net

我有代码来解析日期字段只有当String不为null或为空但我得到以下异常

从字符串""到"日期"类型的转换无效.

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.InvalidCastException:从字符串""到"Date"类型的转换无效.

来源错误:

Line 29:         
Line 30:  If (Not String.IsNullOrEmpty(last_login)) Then 
Line 31:    If  String.Format("{0:MM/dd/yy H:mm:ss}", last_login) < Now.AddMinutes(-5) Then
Line 32:      Return "height:100%;width:100% ;background-color:#FF0000;font-weight: bold; color: #000000"
Line 33:    Else
Run Code Online (Sandbox Code Playgroud)

有人请解释一下?

Kir*_*oll 6

" "不是空字符串.(里面有一个空间.)也许你应该打电话.Trim():

last_login != null && last_login.Trim().Length > 0
Run Code Online (Sandbox Code Playgroud)

或者,如果您使用的是.NET 4,IsNullOrWhitespace那就更好了:

string.IsNullOrWhitespace(last_login)
Run Code Online (Sandbox Code Playgroud)

编辑,感谢@Anthony和@Joel.

  • 另外,如果你使用的是.NET 4,`string.IsNullOrWhitespace`也很有用. (6认同)