“无法在泛型中转换'T'类型的值...”

时间:2016-03-31 03:37:20

标签: swift generics types casting

无法理解如何处理泛型的类型以及如何使用带有库的未定义类型的参数:

protected void Page_Load(object sender, EventArgs e)
{
    selected_tab.Value = Request.Form[selected_tab.UniqueID];
}

1 个答案:

答案 0 :(得分:0)

为什么在这种情况下你必须使用泛型?仅在必须保存类型信息时才使用泛型。

仅在以下情况下使用泛型:

  

"你稍后会给你一个类型,我希望你强制执行   在我指定的任何地方打字。"

仅在您想告诉编译器时使用Any

  

"不要担心这个变量不需要在这里强制执行任何类型   我做任何我想做的事。"

据说,你的用例适合第二个。你不想在这里弄乱泛型。你的解决方案应该是:

func cellWith(value: Any) -> String {
    let fm = NSNumberFormatter()
    fm.numberStyle = .CurrencyStyle
    if let doubleValue = value as? Double {
        return(fm.stringFromNumber(doubleValue))!
    } else {
        return("bla-bla-bla")
    }
}