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

Home
C# / CSharp Tutorial
1.Language Basics
2.Data Type
3.Operator
4.Statement
5.String
6.struct
7.Class
8.Operator Overload
9.delegate
10.Attribute
11.Data Structure
12.Assembly
13.Date Time
14.Development
15.File Directory Stream
16.Preprocessing Directives
17.Regular Expression
18.Generic
19.Reflection
20.Thread
21.I18N Internationalization
22.LINQ
23.GUI Windows Forms
24.Windows Presentation Foundation
25.Windows Communication Foundation
26.Workflow
27.2D
28.Design Patterns
29.Windows
30.XML
31.XML LINQ
32.ADO.Net
33.Network
34.Directory Services
35.Security
36.unsafe
C# / C Sharp
C# / C Sharp by API
C# / CSharp Open Source
C# / CSharp Tutorial » Data Type » enum 
2.36.5.Use enum type categorize objects
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 = (Managerthis;
            return(c.CalculateCharge(hours));
        }
        else if (type == EmployeeTypeEnum.Employee)    
            return(hours * billingRate);
        return(0F);
    }
    
    public string TypeName()
    {
        if (type == EmployeeTypeEnum.Manager)
        {
            Manager c = (Managerthis;
            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[0new Employee("A"15.50F);
        earray[1new 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
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.