У меня есть общий метод с этим (фиктивным) кодом (да, я знаю, что в 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.
}
Это дает мне ошибку сборки
«Невозможно преобразовать значение NULL в тип параметра« T », поскольку это может быть тип значения. Попробуйте вместо этого использовать« default (T) ».»
Могу ли я избежать этой ошибки?
null
независимо от того,T
естьObject
илиint
естьchar
.