# EqualityComparer<T>.Equals(T, T) Method

## Definition

When overridden in a derived class, determines whether two objects of type `T`

are equal.

```
public:
abstract bool Equals(T x, T y);
```

`public abstract bool Equals (T x, T y);`

`public abstract bool Equals (T? x, T? y);`

`override this.Equals : 'T * 'T -> bool`

`Public MustOverride Function Equals (x As T, y As T) As Boolean`

#### Parameters

- x
- T

The first object to compare.

- y
- T

The second object to compare.

#### Returns

`true`

if the specified objects are equal; otherwise, `false`

.

#### Implements

## Remarks

The Equals method is reflexive, symmetric, and transitive. That is, it returns `true`

if used to compare an object with itself; `true`

for two objects `x`

and `y`

if it is `true`

for `y`

and `x`

; and `true`

for two objects `x`

and `z`

if it is `true`

for `x`

and `y`

and also `true`

for `y`

and `z`

.

## Notes to Implementers

Implementations are required to ensure that if the Equals(T, T) method returns `true`

for two objects `x`

and `y`

, then the value returned by the GetHashCode(T) method for `x`

must equal the value returned for `y`

.