The following code includes the complete listing of the Employee class, including the overridden methods of the System.Object class. This reviews many of the topics already mentioned in this chapter:
using System; using System.Collections; namespace Donis.CSharpBook { public class Starter { public static void Main() { Employee obj1 = new Employee(5678); Employee obj2 = new Employee(5678); if (obj1 == obj2) { Console.WriteLine("equals"); } else { Console.WriteLine("not equals"); } } } class Employee { public Employee(int id) { if ((id < 1000) || (id > 9999)) { throw new Exception( "Invalid Employee ID"); } propID = id; } public static bool operator==(Employee obj1, Employee obj2) { return obj1.Equals(obj2); } public static bool operator!=(Employee obj1, Employee obj2) { return !obj1.Equals(obj2); } public override bool Equals(object obj) { Employee _obj = obj as Employee; if (obj == null) { return false; } return this.GetHashCode() == _obj.GetHashCode(); } public override int GetHashCode() { return EmplID; } public string FullName { get { return propFirst + " " + propLast; } } private string propFirst; public string First { get { return propFirst; } set { propFirst = value; } } private string propLast; public string Last { get { return propLast; } set { propLast = value; } } private readonly int propID; public int EmplID { get { return propID; } } public override string ToString() { return FullName; } } }
3.21.46.78