-
Notifications
You must be signed in to change notification settings - Fork 4
Gendarme.Rules.Design.OperatorEqualsShouldBeOverloadedRule(2.10)
Sebastien Pouliot edited this page Jan 22, 2011
·
2 revisions
Assembly: Gendarme.Rules.Design
Version: 2.10
This rule fires if a type overloads operator add +, or overloads operator subtract -, or is a value type and overrides Object.Equals, but equals == is not overloaded.
Bad example (add/substract):
class DoesNotOverloadOperatorEquals {
public static int operator + (DoesNotOverloadOperatorEquals a)
{
return 0;
}
public static int operator - (DoesNotOverloadOperatorEquals a)
{
return 0;
}
}
Bad example (value type):
struct OverridesEquals {
public override bool Equals (object obj)
{
return base.Equals (obj);
}
}
Good example:
struct OverloadsOperatorEquals {
public static int operator + (OverloadsOperatorEquals a)
{
return 0;
}
public static int operator - (OverloadsOperatorEquals a)
{
return 0;
}
public static bool operator == (OverloadsOperatorEquals a, OverloadsOperatorEquals b)
{
return a.Equals (b);
}
public override bool Equals (object obj)
{
return base.Equals (obj);
}
}
Note that this page was autogenerated (3/17/2011 9:31:58 PM) based on the xmldoc
comments inside the rules source code and cannot be edited from this wiki.
Please report any documentation errors, typos or suggestions to the
Gendarme Mailing List. Thanks!