Code Inspection: Compare with '==' types marked by 'CannotApplyEqualityOperatorAttribute'
The
CannotApplyEqualityOperator
attribute is a
ReSharper annotation attribute used to mark types for which the
use of
==
and
!=
operators is inappropriate and should be replaced with
Equals()
or other operations.
Consequently, when two types marked with this attribute are compared with
==
or
!=
, ReSharper will issue a warning.
You may also wonder how ReSharper knows which types cannot be compared with equality operators.
Well, the trick is done with
external annotations
for the .NET Framework Class Library and other frequently used libraries.
These annotations are included in the ReSharper installation.
The
[CannotApplyEqualityOperator]
attribute that triggers this
inspection can be also used
for your custom types,
or you can use the mechanism of
external annotations to annotate types in compiled libraries
that you use.