• 枚举类型,新手型的,高人勿近!


    搞了个枚举,枚举类型定义了一组符号和数值对,每个枚举类型都直接继承于system.enum.而system.enum又继承于system.valuetype,因此枚举类型是值类型,枚举类型week 定义了一个星期7天.

     1using System;
     2using System.Data;
     3using System.Configuration;
     4using System.Web;
     5using System.Web.Security;
     6using System.Web.UI;
     7using System.Web.UI.WebControls;
     8using System.Web.UI.WebControls.WebParts;
     9using System.Web.UI.HtmlControls;
    10
    11public partial class _Default : System.Web.UI.Page 
    12{
    13    protected void Page_Load(object sender, EventArgs e)
    14    {
    15        if (!IsPostBack)
    16        {
    17            TestEnum();
    18            Week weekDay = (Week)100;
    19            ValiateEnum(weekDay);
    20            Response.End();
    21        }

    22
    23    }

    24
    25//定义星期的枚举
    26    public enum Week
    27    {
    28        Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
    29    }

    30    private void TestEnum()
    31    {
    32        Week[] weekList = (Week[])Enum.GetValues(typeof(Week));
    33        foreach (Week w in weekList)
    34        {
    35            Response.Write(w.ToString("D"+ "\t" + w.ToString("G"+ "<br>");
    36        }

    37        string[] nameList = Enum.GetNames(typeof(Week));
    38        foreach (string s in nameList)
    39        { Response.Write(s + "<br>"); }
    40        Response.Write(Enum.GetName(typeof(Week),3)+"<br>");
    41        Response.Write(Enum.GetName(typeof(Week),Week.Wednesday)+ "<br>");
    42        //Response.Write("Base class is "+Enum.GetUnderlyingType(typeof(Week)+"<br>"));
    43        //不知道错哪了,不注释掉不让调试.
    44    }

    45    private void ValiateEnum(Week w)
    46    {
    47        if (Enum.IsDefined(typeof(Week), w) == false)
    48        {
    49            Response.Write(w.ToString() + "Is not exist.<br>");
    50        }

    51        else
    52        {
    53            Response.Write(w.ToString() + "\t Is exist.<br>");
    54        }

    55    }

    56}

    57
    58

    问题就出现了,其中有个GetValue和 GetValues,虽然就多了一个S ,但区别很大的.
    还有一个GetName和 GetNames,也不一样,GetName是指定枚举中检索具有指定值的常数的名称;
    GetNames是指检索指定枚举中常数名称的数组;
    还有上面 Response.Write(w.ToString("D") + "\t" + w.ToString("G") + "<br>");里面的D和G是什么意思?

  • 相关阅读:
    项目笔记:统计页面功能实现
    jquery easyui datagrid实现数据改动
    Skia图片解码模块流程分析
    TRIZ的成功案例
    基于HTML5的Web SCADA工控移动应用
    webservices系列(五)——javaweb整合Axis2及多service配置
    org.hibernate.PropertyValueException: not-null property references a null or transient value: model.
    线程池和异步线程
    [leetcode]Implement strStr()
    Python工作日类库Busines Holiday介绍
  • 原文地址:https://www.cnblogs.com/tobin/p/643935.html
Copyright © 2020-2023  润新知