首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 空值判斷完全指南:null、String.Empty、DBNull、Convert.IsDBNull 與效能優化

     編輯:關於C語言

1. null (引用型別空值)

  • 關鍵字,表示「不參考任何物件」。
  • 引用型別預設值;值型別 (int 等) 不可直接指派 null (需 Nullable<T> 或 T?)。

2. 空字串判斷

寫法說明效能
s.Length == 0直接檢查長度最快 (無物件建立)
s == String.Empty靜態唯讀欄位,共用同一實例次快
s == ""字面常數,理論建立新字串 (編譯器最佳化)稍慢

.NET 2.0+ 建議用 String.IsNullOrEmpty(s) 一次檢查 null 與空字串。

3. 三者差異

  • string s1 = "":空字串物件,記憶體有位址,可呼叫方法。
  • string s2 = null:無參考,呼叫方法拋 NullReferenceException。
  • Request.QueryString["key"] 不存在回傳 null,非空字串。

4. DBNull (資料庫空值)

  • 單例類別 DBNull.Value,表示「資料庫欄位無值」。
  • DataRow[col] 永不回傳 null,要么值要么 DBNull.Value。
  • row[col].ToString() 安全 (DBNull 實作 ToString() 回傳空字串)。
  • 判斷:Convert.IsDBNull(row[col]) 或 DBNull.Value.Equals(row[col])。

5. Convert.IsDBNull()

回傳 bool,指示物件是否為 DBNull 型別。最常用於資料讀取判斷。

效能建議

  1. 字串空檢查優先 Length == 0。
  2. 資料庫欄位檢查用 Convert.IsDBNull()。
  3. 統一 nullable 語意時考慮 String.IsNullOrEmpty / String.IsNullOrWhiteSpace。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved