# 7.9 Relational and type-testing operators

**Visual Studio .NET 2003**

The `==`

, `!=`

, `<`

, `>`

, `<=`

, `>=`

, `is`

and `as`

operators are called the relational and type-testing operators.

*relational-expression:**shift-expression*

*relational-expression*<*shift-expression*

*relational-expression*>*shift-expression*

*relational-expression*<=*shift-expression*

*relational-expression*>=*shift-expression*

*relational-expression*is*type*

*relational-expression*as*type**equality-expression:**relational-expression*

*equality-expression*==*relational-expression*

*equality-expression*!=*relational-expression*

The `is`

operator is described in Section 7.9.9 and the `as`

operator is described in Section 7.9.10.

The `==`

, `!=`

, `<`

, `>`

, `<=`

and `>=`

operators are comparison operators. For an operation of the form `x`

*op* `y`

, where *op* is a comparison operator, overload resolution (Section 7.2.4) is applied to select a specific operator implementation. The operands are converted to the parameter types of the selected operator, and the type of the result is the return type of the operator.

The predefined comparison operators are described in the following sections. All predefined comparison operators return a result of type `bool`

, as described in the following table.

Operation | Result |
---|---|

x == y | `true` if `x` is equal to `y` , `false` otherwise |

x != y | `true` if `x` is not equal to `y` , `false` otherwise |

x < y | `true` if `x` is less than `y` , `false` otherwise |

x > y | `true` if `x` is greater than `y` , `false` otherwise |

x <= y | `true` if `x` is less than or equal to `y` , `false` otherwise |

x >= y | `true` if `x` is greater than or equal to `y` , `false` otherwise |

Show: