This is the tenth and final in a series of quick how-to articles on ReSharper. There are obviously many more awesome features to explore, but I want to give equal time to the other available productivity tools for Visual Studio. Next week I will be starting a new series of tips on Telerik JustCode. Following that series, I will take a look at DevExpress CodeRush.
Tip #10 – Generate Equality Members
Use: If you are creating a class that will need to participate in equality operations, ReSharper can quickly generate the necessary method implementations for you.
Before
1: public class Order : IOrder
   2:      {
3: public int OrderId { get; set; }
   4:   
5: public int CustomerId { get; set; }
   6:   
7: public DateTime OrderDate { get; set; }
   8:   
9: public IList<OrderDetail> OrderDetails { get; set; }
  10:      }
Click Generate Code
Select Equality Members
Select options and finish
After
1: public class Order : IOrder, IEquatable<Order>
   2:      {
3: public int OrderId { get; set; }
   4:   
5: public int CustomerId { get; set; }
   6:   
7: public DateTime OrderDate { get; set; }
   8:   
9: public IList<OrderDetail> OrderDetails { get; set; }
  10:   
11: public bool Equals(Order other)
  12:          {
13: if (ReferenceEquals(null, other)) return false;
14: if (ReferenceEquals(this, other)) return true;
15: return other.OrderId == OrderId;
  16:          }
  17:   
18: public override bool Equals(object obj)
  19:          {
20: if (ReferenceEquals(null, obj)) return false;
21: if (ReferenceEquals(this, obj)) return true;
22: if (obj.GetType() != typeof (Order)) return false;
23: return Equals((Order) obj);
  24:          }
  25:   
26: public override int GetHashCode()
  27:          {
28: return OrderId;
  29:          }
  30:   
31: public static bool operator ==(Order left, Order right)
  32:          {
33: return Equals(left, right);
  34:          }
  35:   
36: public static bool operator !=(Order left, Order right)
  37:          {
38: return !Equals(left, right);
  39:          }
  40:      }
Happy coding!