避免拳击&在通用类中取消装箱

时间:2012-11-08 21:16:36

标签: c# generics boxing unboxing

下面是一些快速代码来说明我的问题。有什么方法可以避免这种明显不必要的装箱/拆箱?

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);
  }
}

1 个答案:

答案 0 :(得分:4)

这是处理你在这里做的事情的唯一方法(为特定的封闭泛型类型返回非默认值)。