嘗試在處理資料庫記錄檢索的方法中分配可為空類型作為泛型參數時,例如GetValueOrNull
最初使用類別約束,允許傳回 null。但是,可空型別(例如 int?)是結構體,禁止作為類別約束所需的參考型別。
要修正此問題,請將限制變更為允許不可為空回傳值的結構體。但是,當嘗試指派可為空類型時,會發生錯誤,指示需要不可為空值類型。
要克服這些限制,請考慮以下策略:
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中文網其他相關文章!