All fields

“GetHashCode & IEquatable” in Information Technology

12 questions across 1 technology.

Information Technology

12 questions in 1 technology

#QuestionTechnologyTopicLevel
1How do you correctly override Equals() and GetHashCode() together on a class, and why must they always be overridden as a pair? C# › Equality: Equals, GetHashCode & IEquatableC#Equality: Equals, GetHashCode & IEquatableIntermediate
2How does implementing IEquatable<T> improve on just overriding Equals(object), and why is it recommended alongside the override? C# › Equality: Equals, GetHashCode & IEquatableC#Equality: Equals, GetHashCode & IEquatableIntermediate
3How does HashCode.Combine() help you write a correct and well-distributed GetHashCode() implementation? C# › Equality: Equals, GetHashCode & IEquatableC#Equality: Equals, GetHashCode & IEquatableIntermediate
4Why is it critical that GetHashCode() only depend on IMMUTABLE fields, and what bug occurs if you violate this rule? C# › Equality: Equals, GetHashCode & IEquatableC#Equality: Equals, GetHashCode & IEquatableAdvanced
5How do you correctly implement IComparable<T> alongside IEquatable<T>, and what consistency rule must they both satisfy together? C# › Equality: Equals, GetHashCode & IEquatableC#Equality: Equals, GetHashCode & IEquatableAdvanced
6What is the difference between reference equality (==) and value equality (Equals()) for a reference type by default? C# › Equality: Equals, GetHashCode & IEquatableC#Equality: Equals, GetHashCode & IEquatableBeginner
7How does a struct's default Equals() behavior differ from a class's, even without any overrides? C# › Equality: Equals, GetHashCode & IEquatableC#Equality: Equals, GetHashCode & IEquatableBeginner
8How does record type equality work by default, and how does it differ fundamentally from a regular class's default equality? C# › Equality: Equals, GetHashCode & IEquatableC#Equality: Equals, GetHashCode & IEquatableAdvanced
9How should Equals() be implemented differently for a class designed to support INHERITANCE, to correctly handle equality between a base type and derived types? C# › Equality: Equals, GetHashCode & IEquatableC#Equality: Equals, GetHashCode & IEquatableAdvanced
10How does structural (deep) equality for collections work, and why doesn't List<T>.Equals() perform element-by-element comparison by default? C# › Equality: Equals, GetHashCode & IEquatableC#Equality: Equals, GetHashCode & IEquatableAdvanced
11How does Dictionary<TKey,TValue> handle hash collisions internally, and why does a poor GetHashCode() implementation degrade its performance? C# › CollectionsC#CollectionsAdvanced
12How do you overload comparison operators like < and >, and what consistency rule must they maintain relative to Equals()? C# › Indexers & Operator OverloadingC#Indexers & Operator OverloadingIntermediate