使用通用集合进行装箱和拆箱

时间:2013-09-03 03:58:52

标签: c# boxing generic-collections unboxing

在采访中我被要求Boxing and Unboxing并且我解释了它。之后我问Generic Collections。我解释了下面的代码,从这里他们问下面代码中如何应用拳击操作。我不确定这个答案。

public abstract class DataAccess<T, TKey>
{
   --CRUD Operations here
}

public class AdminDataAccess : DataAccess<Admin, long>
{
    --code here
}

1 个答案:

答案 0 :(得分:3)

没有拳击。拳击不适用于泛型类型参数。它仅适用于它们实际用于代码并且实际上被所述代码装箱/取消装箱的时候。

编辑:..例如,虽然我认为我解释得相当好..

这将是框:

public abstract class DataAccess<T, TKey> where TKey : struct {
    private object _boxedKey;

    private void DoSomething(TKey key) {
        _boxedKey = key;
    }
}

如果没有一些代码强行装箱/取消装箱值类型,你的通用类型参数与装箱或拆箱没有任何关系。