Locked History Actions

CSharpClassDesign

C# Design

After considering non-language specific design principals such as Robert Martin's Object-Oriented Design Principals, consider language specific items:

1. Do instances of the class under consideration need to be compared for equality?

  • If so make sure this class implements Equatable<T>.

1.a Do instances of the class under consideration need to be compared to other types?

  • If so make sure you provide an implementation of IEqualityComparer<T>

2. Do instances of your class under consideration need to be compared for ordering?

  • If so make sure this class implements IComparable<T>

2.a Does this class have more than one type of sorting order?

  • If so make sure this class implements