Nullable<T> 或 T?)。| 寫法 | 說明 | 效能 |
|---|---|---|
s.Length == 0 | 直接檢查長度 | 最快 (無物件建立) |
s == String.Empty | 靜態唯讀欄位,共用同一實例 | 次快 |
s == "" | 字面常數,理論建立新字串 (編譯器最佳化) | 稍慢 |
.NET 2.0+ 建議用 String.IsNullOrEmpty(s) 一次檢查 null 與空字串。
string s1 = "":空字串物件,記憶體有位址,可呼叫方法。string s2 = null:無參考,呼叫方法拋 NullReferenceException。Request.QueryString["key"] 不存在回傳 null,非空字串。DBNull.Value,表示「資料庫欄位無值」。DataRow[col] 永不回傳 null,要么值要么 DBNull.Value。row[col].ToString() 安全 (DBNull 實作 ToString() 回傳空字串)。Convert.IsDBNull(row[col]) 或 DBNull.Value.Equals(row[col])。回傳 bool,指示物件是否為 DBNull 型別。最常用於資料讀取判斷。
Length == 0。Convert.IsDBNull()。String.IsNullOrEmpty / String.IsNullOrWhiteSpace。