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

搞了个枚举,枚举类型定义了一组符号和数值对,每个枚举类型都直接继承于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是什么意思?

posted on   Tobin  阅读(278)  评论(0编辑  收藏  举报

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端

导航

< 2007年2月 >
28 29 30 31 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 1 2 3
4 5 6 7 8 9 10
点击右上角即可分享
微信分享提示