类型为的铸件
本文关键字:类型 | 更新日期: 2023-09-27 18:03:54
我有一些类型Type someType
,我想在运行时中强制转换
例如我想做的:
var customers = GetCustomers() as someType[]
如何做到这一点?
您不能使用as
来强制转换运行时已知的类型:该表达式在编译时无效,因为您必须使用不能与as
一起使用的typeof(T)
。
不过,您可以使用System.Convert.ChangeType(object, Type)
。在这里,第二个参数可以使用typeof(T)
,并与控制语句相结合,您可以在运行时将输入转换为正确的类型。
不过,您应该问问自己,这是否是您想要的:只有在运行时才知道的类型几乎没有用处。
MSDN:System.Convert.ChangeType
as运算符尝试将对象强制转换为特定类型,如果失败则返回null。
示例:
StringBuilder b=someObject作为StringBuilder;如果(b!=null(。。。
也相关:
强制转换运算符尝试将对象强制转换为特定类型,如果失败,则抛出exeption。
示例:
StringBuilder b=(StringBuilder(someObject。
请参阅此链接:is和as关键字之间的差异