在我的代码中,我正在从一种类型的层次结构转换为另一种类型。我有一组重载方法:
Type1 ToInternalObject(OtherType1 obj);
Type2 ToInternalObject(OtherType2 obj);
//etc.
为了更容易使用这些方法,我想创建一个通用接口:T ToInternalObject<T>(BaseOtherType obj)
,但当类型为double
时,我已经陷入了这种情况:
public static T ToInternalObject<T>(object obj)
{
if (typeof (T) == typeof (double))
{
return (T) 5.0;
}
throw new Exception("Type is not handled yet");
}
编译错误是:Error 140 Cannot convert type 'double' to 'T'
。我怎样才能让它发挥作用?
答案 0 :(得分:2)
双播应该有效:
return (T) (object) 5.0;