V3115. It is not recommended to throw exceptions from 'Equals(object obj)' method.
V3115 Passing 'null' to 'Equals(object obj)' method should not result in 'NullReferenceException'. Git.hub Organization.cs 14
public override bool Equals(object obj)
{
return GetHashCode() == obj.GetHashCode(); // <=
}
Similar errors can be found in some other places:
V3115 Passing 'null' to 'Equals' method should not result in 'NullReferenceException'. EpisodeInfo.cs 561
public override bool Equals(object obj)
{
EpisodeInfo other = obj as EpisodeInfo;
if (obj == null) return false;
if (TvdbId > 0 && other.TvdbId > 0)
return TvdbId == other.TvdbId;
....
}
Instead of 'other' variable used 'obj' variable for 'null' checking.
V3115 Passing 'null' to 'Equals' method should not result in 'NullReferenceException'. ICSharpCode.SharpDevelop ServiceReferenceMapFile.cs 31
public override bool Equals(object obj)
{
var rhs = obj as ServiceReferenceMapFile;
return FileName == rhs.FileName;
}
V3115 CWE-684 Passing 'null' to 'Equals' method should not result in 'NullReferenceException'. CurveEditorSelection.cs 74
public override bool Equals(object _other)
{
CurveSelection other = (CurveSelection)_other;
return other.curveID == curveID && other.key == key &&
other.type == type;
}
Similar errors can be found in some other places:
V3115 Passing 'null' to 'Equals' method should not result in 'NullReferenceException'. CharacterRange.cs 56
public override bool Equals(object obj)
{
if (obj.GetType() != typeof(CharacterRange)) // <=
return false;
CharacterRange cr = (CharacterRange)obj;
return ((_first == cr.First) && (_length == cr.Length));
}
V3115 Passing 'null' to 'Equals' method should not result in 'NullReferenceException'. ResCulture.cs 28
public class ResCulture
{
public string Title { get; set; }
public string Value { get; set; }
public bool Available { get; set; }
public override bool Equals(object obj)
{
return Title.Equals(((ResCulture) obj).Title);
}
....
}
This is exactly the case when a reply to a comment turned into a small blog post. The power of ...