Ho un metodo generico con questo codice (fittizio) (sì, sono consapevole che IList ha predicati, ma il mio codice non utilizza IList ma un'altra raccolta, comunque questo è irrilevante per la domanda ...)
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.
}
Questo mi dà un errore di compilazione
"Impossibile convertire null per digitare il parametro 'T' perché potrebbe essere un tipo di valore. Prendi invece in considerazione l'uso di 'default (T)'."
Posso evitare questo errore?
null
indipendentemente dal fatto cheT
siaObject
oint
ochar
.