Enum 枚举

一:

1.

foreach (int val in Enum.GetValues(typeof(AppEnum.HarbourStatus)))

{



          ddlStatus.Items.Add(new ListItem(Enum.GetName(typeof(AppEnum.HarbourStatus), val), val.ToString()));



}



ddlStatus.Items.FindByText(AppEnum.HarbourStatus.Avtal.ToString()).Selected = true;



2.

public enum HarbourStatus

{

            Ansökan = 1,

            Avtal = 2,

            Makulerad = 3,

            Köplats = 4

}

  

二:

 

var errorMes = respCode < 0 ? ((ProcessorStatus)respCode).ToDisplayString() : ((RedemptionStatus)respCode).ToDisplayString();

using System;

using System.Reflection;

using System.Resources;



namespace BallyACSCProvider.Util

{

    internal enum ProcessorStatus : int

    {

        [DisplayString("Certificate Error")]

        CertError = -001,  //certificate error



        [DisplayString("Retry Time out")]

        RetryOut = -002, //exceed retry time



        [DisplayString("Response Error")]

        ResponseError = -003, //error when get response



        NoResponse = -004, // no response need to be checked



        NoResponseCode=-005,  //Has response, but no response code in response



        ResponseOk=0, //

    }



    internal enum StartUpStatus : int

    {

        [DisplayString("Success")]

        Success = 000,



        [DisplayString("Invalid Version")]

        InvalidVersion = 001,



        [DisplayString("Invalid Release")]

        InvalidRelease = 002,



        [DisplayString("Invalid Corporate ID")]

        InvalidCorpID = 003,



        [DisplayString("Invalid Poroperty ID")]

        InvalidPropID = 004,



        [DisplayString("Unknown Kiosk")]

        UnknownKiosk = 005,

    }



    internal enum ValidationStatus : int

    {

        [DisplayString("Accepted")]

        Accepted = 001,



        [DisplayString("Validate declined")]

        Declined = 002,

    }



    internal enum RedemptionStatus : int

    {

        [DisplayString("Accepted")]

        Accepted = 001,



        [DisplayString("Redemption declined")]

        Declined = 002,

    }



    internal enum ProviderStatus : int

    {

        Startup = 1,

        Terminated = 2,

    }



    /// <summary>

    /// Apply to properties or enum that are used in display description string.

    /// </summary>

    [AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = false)]

    internal class DisplayStringAttribute : Attribute

    {

        internal DisplayStringAttribute()

        { }



        internal DisplayStringAttribute(string value)

        {

            _value = value;

        }



        private readonly string _value;

        internal string Value

        {

            get

            {

                return _value;

            }

        }



        internal string ResourceKey { get; set; }

    }



    internal static class EnumExtensions

    {

        internal static string ToDisplayString(this System.Enum en)

        {

            Type type = en.GetType();

            MemberInfo[] memInfo = type.GetMember(en.ToString());



            if (memInfo.Length > 0)

            {

                object[] attrs = memInfo[0].GetCustomAttributes(typeof(DisplayStringAttribute), false);



                if (attrs.Length > 0)

                {

                    var attr = ((DisplayStringAttribute)attrs[0]);

                    return !string.IsNullOrEmpty(attr.ResourceKey)

                        ? GetStringByResourceKey(type, attr.ResourceKey)

                        : attr.Value;

                }

            }



            return en.ToString();

        }



        private static string GetStringByResourceKey(Type enumType, string key)

        {

            if (string.IsNullOrEmpty(key))

                return string.Empty;



            var rm = new ResourceManager(enumType);

            return rm.GetString(key);

        }

    }

}

  

你可能感兴趣的:(enum)