У мене є загальний метод з цим (фіктивним) кодом (так, я знаю, що в IList є предикати, але мій код не використовує IList, а якусь іншу колекцію, все-таки це питання не має значення для питання ...)
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.
}
Це дає мені помилку побудови
"Неможливо перетворити нульовий параметр типу" T ", тому що це може бути тип значення. Розглянемо натомість використання" default (T) "."
Чи можу я уникнути цієї помилки?
null
незалежно від того ,T
єObject
чиint
абоchar
.