Poniżej znajduje się krótki kod ilustrujący moje pytanie. Jakikolwiek sposób uniknąć tego pozornie niepotrzebnego boksowania/rozpakowywania?Unikaj boksowania i rozpakowywania w klasie ogólnej
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 oznacza "ten sam kod działa dla wielu typów". Chcesz różnych kodów dla różnych typów, więc twój przypadek użycia nie jest przedmiotem ogólnej wiedzy. – dtb
Jeśli chcesz tylko sprawdzić typ w treści metody, dlaczego chcesz go generować? – Servy
Czy środowisko wykonawcze .NET nie optymalizuje tego? –