Saya punya metode generik dengan kode (dummy) ini (ya saya sadar IList memiliki predikat, tetapi kode saya tidak menggunakan IList tetapi beberapa koleksi lain, toh ini tidak relevan untuk pertanyaan ...)
static T FindThing<T>(IList collection, int id) where T : IThing, new()
{
foreach T thing in collecion
{
if (thing.Id == id)
return thing;
}
return null; // ERROR: Cannot convert null to type parameter 'T' because it could be a value type. Consider using 'default(T)' instead.
}
Ini memberi saya kesalahan build
"Tidak dapat mengonversi nol untuk mengetik parameter 'T' karena itu bisa menjadi tipe nilai. Sebagai gantinya gunakan 'default (T)'."
Bisakah saya menghindari kesalahan ini?
null
terlepas dari apakahT
iniObject
atauint
atauchar
.