我想要在运行时
中投射Type someType
的某种类型
例如我想做:
var customers = GetCustomers() as someType[]
怎么做?
答案 0 :(得分:5)
您无法使用as
强制转换运行时已知的类型:表达式在编译时无效,因为您必须使用不能与{{1}一起使用的typeof(T)
}。
你可以使用的是as
。这里第二个参数可以使用System.Convert.ChangeType(object, Type)
并结合控制语句,您可以在运行时将输入转换为正确的类型。
你应该问问自己这是否是你想要的东西:只有在运行时才知道的类型会让你几乎没用。
答案 1 :(得分:-1)
as 运算符尝试将对象强制转换为特定类型,如果失败则返回null。
示例:
StringBuilder b = someObject as StringBuilder; if(b!= null)...
也相关:
强制转换操作符尝试将对象强制转换为特定类型,如果失败则抛出异常。
示例:
StringBuilder b =(StringBuilder)someObject。