【发布时间】:2016-06-29 11:37:30
【问题描述】:
我继承了必须反编译的代码,
从代码中我得到一个我无法解决的问题,将对象转换为 HtmlString 到 T
if (typeof(T) == typeof(IHtmlString))
{
return (T)(new HtmlString(value.ToString()));
}
构建时的错误是无效的强制转换表达式,我尝试使用 Convert.ChangeType 但这也不起作用。
return (T)Convert.ChangeType(new HtmlString(value.ToString()), typeof(T));
开始没有想法了,有人有什么解决办法吗?
【问题讨论】:
-
必须尝试
where U : IConvertible约束:stackoverflow.com/a/6884667/284240 -
你能发布完整的方法吗?
-
return (T)(object)(new HtmlString(value.ToString()));怎么样?但真正检查T的类型并进行强制转换有点违背了首先使用泛型的全部目的。