У меня есть универсальный метод с этим (фиктивным) кодом (да, я знаю, что в 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).
Можно ли избежать этой ошибки?