-
Notifications
You must be signed in to change notification settings - Fork 4
Gendarme.Rules.Design.OperatorEqualsShouldBeOverloadedRule(git)
Sebastien Pouliot edited this page Mar 2, 2011
·
1 revision
Assembly: Gendarme.Rules.Design
Version: git
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);
}
}
You can browse the latest source code of this rule on github.com
Note that this page was autogenerated (3/17/2011 1:55:44 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!