檢索資料庫記錄時如何將可空類型作為通用參數處理?
Jan 05, 2025 pm 07:49 PM解決泛型參數中的可為空類型限制
嘗試在處理資料庫記錄檢索的方法中分配可為空類型作為泛型參數時,例如GetValueOrNull
最初使用類別約束,允許傳回 null。但是,可空型別(例如 int?)是結構體,禁止作為類別約束所需的參考型別。
要修正此問題,請將限制變更為允許不可為空回傳值的結構體。但是,當嘗試指派可為空類型時,會發生錯誤,指示需要不可為空值類型。
要克服這些限制,請考慮以下策略:
- 修改回傳值類型為 Nullable
來容納可為空的值。 - 在方法呼叫中指定不可為空的基底類型,如下面的程式碼所示:
static void Main(string[] args) { int? i = GetValueOrNull<int>(null, string.Empty); } public static Nullable<T> GetValueOrNull<T>(DbDataRecord reader, string columnName) where T : struct { object columnValue = reader[columnName]; if (!(columnValue is DBNull)) return (T)columnValue; return null; }
登入後複製
透過採用這種方法,您可以授權GetValueOrNull 方法處理可為空類型,確保無縫檢索資料庫值。
以上是檢索資料庫記錄時如何將可空類型作為通用參數處理?的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)