枚举类型,新手型的,高人勿近!
搞了个枚举,枚举类型定义了一组符号和数值对,每个枚举类型都直接继承于system.enum.而system.enum又继承于system.valuetype,因此枚举类型是值类型,枚举类型week 定义了一个星期7天.
1
using System;
2
using System.Data;
3
using System.Configuration;
4
using System.Web;
5
using System.Web.Security;
6
using System.Web.UI;
7
using System.Web.UI.WebControls;
8
using System.Web.UI.WebControls.WebParts;
9
using System.Web.UI.HtmlControls;
10
11
public 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
using System;2
using System.Data;3
using System.Configuration;4
using System.Web;5
using System.Web.Security;6
using System.Web.UI;7
using System.Web.UI.WebControls;8
using System.Web.UI.WebControls.WebParts;9
using System.Web.UI.HtmlControls;10

11
public 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 Week27
{28
Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday29
}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
else52
{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是什么意思?
第八宗罪Tobin

浙公网安备 33010602011771号