2
我怀疑答案是否定的,但是可以在C#.NET(v2.0)中做这样的事情。通用铸造
class Converter<E>
{
public E Make(object o)
{
return o as E;
}
}
如果不是,它可以检查类型是这样的:
public bool IsType(object o, Type t)
{
return o is E;
}
我不能确定有关术语,它是相当困难谷歌我。 但我的猜测是这两个问题是相关的。有任何想法吗?
它可能不是与此有关,但'as'也适用于空值类型。所以例如'o as int?'不会编译。 – svick 2012-02-25 12:36:22
请注意,在您的第一个示例中,如果E是非空值类型,则拆箱转换必须准确;也就是说,如果对象包含装箱的int,则即使可以将int转换为double,也不可以将其解除加倍。 – 2012-02-25 16:05:54