首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# null != null 判斷失效實為邏輯寫反:RegEx.IsMatch 正確用法

     編輯:程式設計綜合問答

現象代碼

// 錯誤寫法
if (null != reg.IsMatch(model.FeedBack)) { ... }
// reg.IsMatch 返回 bool,永遠不為 null,條件恒真/恒假取決於邏輯

根因

Regex.IsMatch 返回 bool(true/false),**絕不返回 null**。對 bool 進行 null 比較在 C# 中編譯錯誤(CS0019),若代碼能跑通說明變量類型非預期(如 bool? 或動態類型)。截圖顯示雙邊均為 null,實為調試器顯示誤導或變量未賦值。

正確判斷邏輯

// 1. 直接使用 bool 結果
if (reg.IsMatch(model.FeedBack)) {
    // 匹配成功
}

// 2. 明確比較 true/false
if (reg.IsMatch(model.FeedBack) == true) { ... }

// 3. 空值檢查(針對字符串輸入)
if (!string.IsNullOrEmpty(model.FeedBack) && reg.IsMatch(model.FeedBack)) { ... }

調試技巧

  • 斷點懸停查看 reg.IsMatch(...) 實際返回值(true/false)。
  • 使用 Watch 窗口輸入表達式驗證。
  • 檢查 model.FeedBack 是否為 null,先做字符串非空守衛。

Regex 常用模式速查

需求Pattern
郵箱^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$
手機號(中國)^1[3-9]\d{9}$
身份證(18位)^\d{17}[\dXx]$
中文^[\u4e00-\u9fa5]+$

「null != null」是誤導性現象,核心修復:**直接使用 IsMatch 返回的 bool 值作為條件**,補全輸入字符串非空檢查。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved