类型为的铸件

本文关键字:类型 | 更新日期: 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关键字之间的差异