下面是一些快速代碼來說明我的問題。任何方式來避免這種顯然不必要的拳擊/拆箱?避免拳擊與拆箱在通用類
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);
}
}
泛型意味着「相同的代碼適用於多種類型」。您需要針對不同類型的不同代碼,因此您的用例不在泛型的關注範圍之內。 – dtb
如果你只是在方法的主體中檢查類型,爲什麼首先使它通用? – Servy
.NET運行庫不會優化嗎? –