static void convert<T>(ref T t1) where T : struct
{
if (t1 is Enum)
{
T t2 = (T)Enum.Parse(typeof(T), "1");
T t3 = (T)Convert.ChangeType(1,Enum.GetUnderlyingType(typeof(T)));
T t4 = (T)(object)1;
}
}
在泛型示例中,这三句转换代码结果是一致的.
我得出的结论是:
这三句代码都是拆箱的过程(将 int 类型转换 object 然后转目标类型)
本人非常不理解 t2,t3 的转换方式.有点多此一举. 求解释.
...全文
28017打赏收藏
泛型转换的问题,求解释
static void convert(ref T t1) where T : struct { if (t1 is Enum) { T t2 = (T)Enum.Parse(typeof(T), "1"); T t3 = (T)Convert.ChangeType(1,Enum.GetUnderlyingType(typeof(T))); T t4 = (T)(object)1; } } 在泛型示例中,这三句转换代码结果是一致的. 我得出的结论是: 这三句代码都是拆箱的过程(将 int