Use enum type categorize objects : enum « Data Type « C# / CSharp Tutorial






using System;

enum EmployeeTypeEnum
{
    Employee,
    Manager
}

class Employee
{
    public Employee(string name, float billingRate)
    {
        this.name = name;
        this.billingRate = billingRate;
        type = EmployeeTypeEnum.Employee;
    }
    
    public float CalculateCharge(float hours)
    {
        if (type == EmployeeTypeEnum.Manager)
        {
            Manager c = (Manager) this;
            return(c.CalculateCharge(hours));
        }
        else if (type == EmployeeTypeEnum.Employee)    
            return(hours * billingRate);
        return(0F);
    }
    
    public string TypeName()
    {
        if (type == EmployeeTypeEnum.Manager)
        {
            Manager c = (Manager) this;
            return(c.TypeName());
        }
        else if (type == EmployeeTypeEnum.Employee)
            return("Employee");
        return("No Type Matched");
    }
    
    private string name;
    protected float billingRate;
    protected EmployeeTypeEnum type;
}

class Manager: Employee
{
    public Manager(string name, float billingRate) :
    base(name, billingRate)
    {
        type = EmployeeTypeEnum.Manager;
    }
    
    public new float CalculateCharge(float hours)
    {
        if (hours < 1.0F)
        hours = 1.0F;        // minimum charge.
        return(hours * billingRate);
    }
    
    public new string TypeName()
    {
        return("Civil Employee");
    }
}

class MainClasss{
    public static void Main(){
        Employee[]    earray = new Employee[2];
        earray[0] = new Employee("A", 15.50F);
        earray[1] = new Manager("B", 40F);
        
        Console.WriteLine("{0} charge = {1}",
        earray[0].TypeName(),
        earray[0].CalculateCharge(2F));
        Console.WriteLine("{0} charge = {1}",
        earray[1].TypeName(),
        earray[1].CalculateCharge(0.75F));
    }
}
Employee charge = 31
Civil Employee charge = 40








2.36.enum
2.36.1.Enumerations
2.36.2.Declaration of enum data type
2.36.3.Define constants with const keywords and enum
2.36.4.Readonly Fields with enum
2.36.5.Use enum type categorize objects
2.36.6.Pass enum data to a method
2.36.7.Assign int value to enumerations
2.36.8.Enumerations Initialization with calculation
2.36.9.Enumerations Initialization with integer value
2.36.10.Output enum element value
2.36.11.Loop through the enum data type
2.36.12.Use an enumeration to index an array
2.36.13.Assign enum value from a member and variable
2.36.14.Use enum data as flags
2.36.15.Using enum as a member for a struct
2.36.16.Print out the details of any enum