Employee Class

Employee Class

This is the complete listing of the Employee class, including the overridden methods of the System.Object class:

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;
        }
    }
}