Rumah >pembangunan bahagian belakang >C++ >Bagaimana Saya Boleh Mengendalikan Jenis Nullable sebagai Parameter Generik Apabila Mendapatkan Rekod Pangkalan Data?
Apabila cuba untuk menetapkan jenis nullable sebagai parameter generik dalam kaedah yang mengendalikan pengambilan semula rekod pangkalan data, seperti GetValueOrNull
Pada mulanya, kekangan kelas telah digunakan, membenarkan pengembalian null. Walau bagaimanapun, jenis nullable, seperti int?, adalah struct, dilarang sebagai jenis rujukan yang diperlukan oleh kekangan kelas.
Untuk membetulkan ini, menukar kekangan kepada struct dibenarkan untuk nilai pulangan tidak boleh null. Walau bagaimanapun, apabila cuba untuk menetapkan jenis yang boleh dibatalkan, ralat menunjukkan bahawa jenis nilai tidak boleh dibatalkan diperlukan.
Untuk mengatasi pengehadan ini, pertimbangkan strategi berikut:
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; }
Dengan menggunakan pendekatan ini, anda memperkasakan Kaedah GetValueOrNull untuk mengendalikan jenis nullable, memastikan perolehan semula nilai pangkalan data yang lancar.
Atas ialah kandungan terperinci Bagaimana Saya Boleh Mengendalikan Jenis Nullable sebagai Parameter Generik Apabila Mendapatkan Rekod Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!