“TryCast”操作数必须是类约束类型参数,但“<typeparametername>”没有类约束

更新:2007 年 11 月

TryCast 运算符与一个无法保证是引用类型的类型参数操作数一起使用。

TryCast 只处理引用类型,如类或接口。在将类型参数作为变量传递给 TryCast 时,必须将该类型参数约束为引用类型。可以通过在类型参数的约束列表中包含以下一项或多项来这样做:

  • 一个或多个接口名称(类型参数必须实现所有这些名称)

  • 至多一个类名(类型参数必须从该类继承)

  • New (Visual Basic) 约束(类型变量必须公开一个创建代码可以访问的无参数构造函数,因此,它必须是类)

  • Class (Visual Basic) 约束(类型参数必须是引用类型)

**错误 ID:**BC30793

更正此错误

  • 如果需要将此类型参数传递给 TryCast,则用前面列表中的一个或多个约束来约束它。

  • 如果不能要求类型参数只接受引用类型,则不能将它用于 TryCast。可能可以改用 CType 函数

请参见

概念

Visual Basic 中的泛型类型

值类型和引用类型

扩大转换和收缩转换

隐式转换和显式转换

参考

类型列表