Tengo un método genérico con este código (ficticio) (sí, soy consciente de que IList tiene predicados, pero mi código no usa IList sino otra colección, de todos modos esto es irrelevante para la pregunta ...)¿Cómo puedo devolver NULL desde un método genérico en C#?
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.
}
Esto me da un error de generación
"no se puede convertir nulo al tipo de parámetro 'T', porque podría ser un tipo de valor. considerar el uso de 'default (T)' en su lugar."
¿Se puede evitar este error?
¿Por qué esta wiki de la comunidad? – vitule
Porque pensé que esto hace que esta comunidad de preguntas sea editable? – edosoft