类型“<typename>”必须定义运算符“<determinantoperator>”,才能在“<shortcircuitoperator>”表达式中使用

更新:2007 年 11 月

当某个类或结构类型未定义所需运算符时,AndAlso 运算符OrElse 运算符 使用了该类或结构类型的操作数。

由于未直接定义短路运算符(AndAlso 或 OrElse),因此必须定义对应的逻辑和行列式运算符。下表显示了所需的运算符。

短路运算符

逻辑运算符

行列式运算符

AndAlso

And 运算符 (Visual Basic)

IsFalse 运算符

OrElse

Or 运算符 (Visual Basic)

IsTrue 运算符

Visual Basic 使用这些逻辑运算符和限定性运算符为 AndAlso 或 OrElse 构造短路逻辑。为了使这一点正常工作,And 或 Or 定义的操作数和返回值均必须为内含类型,也就是说,您在其中定义 And 或 Or 的类或结构的类型。

**错误 ID:**BC33035

更正此错误

  • 在用于 AndAlso 或 OrElse 运算符的操作数类型的类或结构中,定义 And 和 IsFalse 运算符,或定义 Or 和 IsTrue 运算符。确保 And 或 Or 的操作数采用您在其中定义该运算符的类或结构的类型。

请参见

任务

如何:定义运算符

如何:定义转换运算符

概念

运算符过程

Visual Basic 中的逻辑运算符和位运算符

参考

Operator 语句