Unten ist ein kurzer Code, um meine Frage zu veranschaulichen. Irgendeine Möglichkeit, dieses scheinbar unnötige Boxen/Unboxing zu vermeiden?Vermeiden Sie Boxen & Unboxing in der generischen Klasse
public class TestClass<T>
{
public T TestMethod()
{
if (typeof(T) == typeof(bool))
{
return true; // doesn't work
return (T)(object)true; // works, but any way to avoid this?
}
return default(T);
}
}
Generics bedeuten "derselbe Code funktioniert für mehrere Typen". Sie möchten einen unterschiedlichen Code für verschiedene Typen, sodass Ihr Anwendungsfall außerhalb des Fokus von Generika liegt. – dtb
Wenn Sie nur den Typ im Körper der Methode überprüfen, warum es überhaupt generisch machen? – Servy
Kann die .NET-Laufzeitumgebung das nicht optimieren? –