【问题标题】:Casting HtmlString to T将 HtmlString 转换为 T
【发布时间】: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 的类型并进行强制转换有点违背了首先使用泛型的全部目的。

标签: c# web


【解决方案1】:

您可以通过先转换为 object 来解决此问题。

if (typeof(T) == typeof(IHtmlString))
{
  return (T)(object)(new HtmlString(value.ToString()));
}

【讨论】:

    【解决方案2】:

    怎么样

    if (typeof(T) == typeof(IHtmlString))
    {
       dynamic result = new HtmlString(value.ToString());
       return (T)result;
    }
    

    【讨论】:

      猜你喜欢
      • 2016-01-06
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 2014-10-04
      • 2012-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多