zoukankan      html  css  js  c++  java
  • .NET中的枚举用法浅析

    本文简单分析了.NET中的枚举用法。分享给大家供大家参考。具体分析如下:

    我理解的枚举就是编程中约定的一个“可选值”;例如QQ的在线状态,分别有    在线,Q我吧,隐身,忙碌等等。。。我觉得这就是一个枚举。

    1.普通枚举

    1) 实例

    public enum UserState
    {
     QMe,
     OnLine,
     OffLine     //后面省略
    }

    ps:像上边的枚举,可以单独写在一个CS文件中。

    2)普通枚举的性质

    1. 互斥性

    2. 每一个值都有一个数值来表示

    3. 枚举在编译时,就已经用数值来表示了。

    3)字符串转换成枚举

    (UserState)Enum.Parse(typeof(UserState),"Red") ;

    将字符串型转化为(Enum)枚举类型。

    例如:现在有个字符串sString,一个枚举EnumName,希望把sString类型转换成EnumName类型格式如下:

    (EnumName)EnumName.Parse(typeof(EnumName),sString)

    实例:有一个下拉式列表,通过选择某项,将选择的SelectedValue转变成枚举类型

    <asp:DropDownList ID="ddlStatus" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlStatus_SelectedIndexChanged">
                                        <asp:ListItem Value="1" Selected="True">保密</asp:ListItem> 
                                        <asp:ListItem Value="2">男</asp:ListItem>
                                        <asp:ListItem Value="3">女</asp:ListItem>
                                    </asp:DropDownList>

    枚举类型:public enum Sex{ 保密= 1, 男 = 2, 女 = 3 };

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;

    public partial class EnumTest : System.Web.UI.Page
    {
            public enum Sex { 保密=1,男=2,女=3}
            protected void Page_Load(object sender, EventArgs e)
            {

            }
            protected void ddlSex_SelectedIndexChanged(object sender, EventArgs e)
            {
                Response.Write((Sex)Enum.Parse(typeof(Sex), ddlSex.SelectedValue));
                lblMeg.Text = "ddlSex.SelectedValue的值为:" + ddlSex.SelectedValue.ToString()+"/n";
                lblMeg.Text += Convert.ToString(Enum.Parse(typeof(Sex), ddlSex.SelectedValue));
            }
    }

    Result:下拉式ddlSex.SelectedValue的值为1时,显示保密。

    4)枚举转换成数值、字符串

    (int)myColor.Red;
    myColor.Red.ToString();

    2.标识枚举

    但一个事物具有多个属性时,普通枚举就不够用了。

    普通枚举是互斥的,标识而枚举是可以组合的。

    1)定义

    //使用以后结果是Tostring()的,而不是数字的。

    public enum GoodMan
    {
       高=1,
       富=2,
       帅=4     //这里必须是2的N次方,切不能重复。
    }

    2)状态组合(或运算)

    GoodMan winter = GoodMan.高| GoodMan.富| GoodMan.帅;

    3)判定winter中是否具有某个枚举值(与运算)

    if(winter&GoodMan.高==GoodMan.高)

  • 相关阅读:
    Python 中的Lock与RLock
    Python 自定义三方库
    Python 通过RSA实现license验证设备指纹与有效期
    Python 通过wmi获取Window服务器硬件信息
    Java List对象集合按对象属性分组、分组汇总、过滤等操作示例
    BrokenPipeError: [Errno 32] Broken pipe
    Python 通过dmidecode获取Linux服务器硬件信息
    Linux 解决E: Sub-process /usr/bin/dpkg returned an error code (1)错误
    Ubuntu 增加新用户并赋予root权限及免密的方法
    关于smali插桩
  • 原文地址:https://www.cnblogs.com/sjqq/p/6477349.html
Copyright © 2011-2022 走看看