GreenRock Software Code Comment

February 19, 2008

C# Enums

Filed under: Enums — greenrocksoftware @ 4:34 am

using System;

using System.ComponentModel;

using System.Diagnostics;

 

 

public class EnumFunctions

{

    public enum MyEnum : int

    {

        alfa = 1,

        beta = 2,

        gamma = 3

    }

 

    public enum ProjectTypes

    {

        Unknown = 0,

        Closing = 1,

        Generic = 2,

        Listing = 3,

        Buying = 4

    }

 

    enum Color

    {

        Green,

        Yellow,

        Red

    }

 

    public EnumFunctions()

    { 

        //How to retrieve an Enum member given its integer value

        //To retrieve an Enum member given its integer value, cast the integer value to your Enum type:

 

        MyEnum MyEnumVal;

        int i;

 

        // Retrieve an enum member by its value

        i = 2;

        MyEnumVal = (MyEnum)i;

        Debug.WriteLine(MyEnumVal.ToString());

 

        // If the specified value is not an enum member, MyEnumVal receives the value anyway

        i = 4;

        MyEnumVal = (MyEnum)i;

        Debug.WriteLine(MyEnumVal.ToString());    // The output is “4″

 

        // Test for allowed enum values

        if (!MyEnum.IsDefined(typeof(MyEnum), 4))

        Debug.WriteLine(“The value of 4 is not defined in the Enum”);

 

        //How to retrieve an Enum member given its name

        //To retrieve an Enum member given its name, use the ConvertFrom() method of the

        //TypeConverter class and cast the result to your Enum type:

 

        MyEnumVal = (MyEnum) TypeDescriptor.GetConverter(MyEnumVal).ConvertFrom(“gamma”);

        Debug.WriteLine(MyEnumVal.ToString());    // The output is “gamma”

 

        // or

        MyEnumVal = (MyEnum) Enum.Parse(typeof(MyEnum), “gamma”);

        Debug.WriteLine(MyEnumVal.ToString());    // The output is “gamma”

 

        //Using Enums

        switch ((ProjectTypes)Convert.ToInt32(projectTypeID))

        {

            case ProjectTypes.Buying:

            break;

            case ProjectTypes.Closing:

            break;

            case ProjectTypes.Generic:

            break;

            case ProjectTypes.Listing:

            break;

            case ProjectTypes.Unknown:

            break;

            default:

            break;

        }

 

        // or

 

        ProjectTypes projectType = (ProjectTypes)Enum.Parse(typeof(ProjectTypes), projectTypeID)

 

        // or cast from int to enum like

        ProjectTypes pType = (ProjectTypes ) intStatus;

        switch (pType)

        {

            case ProjectTypes.Buying:

            fileType = “Buying”;

            break;

 

            case ProjectTypes.Closing:

            fileType = “Closing”;

            break;

            //…

            default:

            break;

        }

 

        //C# / CSharp Tutorial » Data Type » enum base type     

        //Convert enum to int

 

        Color t1 = Color.Green;

        Color t2 = Color.Yellow;

        Color t3 = Color.Red;

 

        Console.WriteLine(“{0},\t{1}”,   t1, (int)t1);

        Console.WriteLine(“{0},\t{1}”,   t2, (int)t2);

        Console.WriteLine(“{0},\t{1}\n”, t3, (int)t3);

    }

}

Blog at WordPress.com.