Ich habe eine generische Methode mit diesem (Dummy-) Code (ja, ich weiß, dass IList Prädikate hat, aber mein Code verwendet nicht IList, sondern eine andere Sammlung, dies ist jedoch für die Frage irrelevant ...)
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.
}
Dies gibt mir einen Build-Fehler
"Null kann nicht in den Typparameter 'T' konvertiert werden, da es sich um einen Werttyp handeln kann. Verwenden Sie stattdessen 'default (T)'."
Kann ich diesen Fehler vermeiden?
null
unabhängig davon , obT
istObject
oderint
oderchar
.