c#枚举类型
来源:互联网 发布:协方差矩阵计算公式 编辑:程序博客网 时间:2024/06/05 08:31
枚举类型是一种的值类型,它用于声明一组命名的常数。
(1) 枚举的声明:枚举声明用于声明新的枚举类型。
访问修辞符 enum 枚举名:基础类型
{
枚举成员
}
枚举由int,uint,byte,sbyte,long,ulong,short,ushort这8种基元类型构成基类型,没有显式地声明基础类型的枚举声 明意味着所对应的基础类型默认为int。如:
public enum Week:int {
Monday = 1;
Tuesday = 2;
Wednesday = 3;
Thursday = 4;
Friday = 5;
Saturday = 6;
Sunday = 7;
}
(2) 枚举成员默认值
在枚举类型中声明的第一个枚举成员它的默值为零。
以后的枚举成员值是将前一个枚举成员(按照文本顺序)的值加 1 得到的。这样增加后的值必须在该基础类型可表示的值 的范围内;否则,会出现编译时错误。 如:
public enum TimeofDay:uint
{
Morning,
Afternoon,
Evening
}
Morning的值为0,Afternoon的值为1,Evening的值为2。
(3)为枚举成员显示赋值
允许多个枚举成员有相同的值.没有显示赋值的枚举成员的值,总是前一个枚举成员的值+1.示例:
public enum Number
{
a=1,
b,
c=1,
d
}
b的值为2,d的值为2.
(4)枚举类型与基础类型的转换
基础类型不能隐式转换为枚举类型
枚举类型也不能隐式转换为基础类型。示例:
public enum Number
{
a,
b,
c,
d
}
class Test
{
public static void Main()
{
int i=Number.a;//错误,要强制类型转换(int)Number.a
Number n;
n=2 //错误,要强制类型转换(Number)2
}
}
注意:以上枚举值都不能超过它的基础类型范围。否则会报错.
(5)使用枚举类型
using System;
public enum TimeofDay
{
Morning,
Afternoon,
Evening
}
class Test
{
static void WriteGreeting(TimeofDay timeofDay)
{
switch(timeofDay)
{
case TimeofDay.Morning:
Console.WriteLine("good morning");
break;
case TimeofDay.Afternoon:
Console.WriteLine("good afternoon");
break;
case TimeofDay.Evening:
Console.WriteLine("good evening");
break;
}
}
static void Main()
{
WriteGreeting(TimeofDay.Morning);
WriteGreeting(TimeofDay.Evening);
WriteGreeting(TimeofDay.Afternoon);
}
TimeofDay td = TimeofDay.Evening;
}
(1) 枚举的声明:枚举声明用于声明新的枚举类型。
访问修辞符 enum 枚举名:基础类型
{
枚举成员
}
枚举由int,uint,byte,sbyte,long,ulong,short,ushort这8种基元类型构成基类型,没有显式地声明基础类型的枚举声 明意味着所对应的基础类型默认为int。如:
public enum Week:int {
Monday = 1;
Tuesday = 2;
Wednesday = 3;
Thursday = 4;
Friday = 5;
Saturday = 6;
Sunday = 7;
}
(2) 枚举成员默认值
在枚举类型中声明的第一个枚举成员它的默值为零。
以后的枚举成员值是将前一个枚举成员(按照文本顺序)的值加 1 得到的。这样增加后的值必须在该基础类型可表示的值 的范围内;否则,会出现编译时错误。 如:
public enum TimeofDay:uint
{
Morning,
Afternoon,
Evening
}
Morning的值为0,Afternoon的值为1,Evening的值为2。
(3)为枚举成员显示赋值
允许多个枚举成员有相同的值.没有显示赋值的枚举成员的值,总是前一个枚举成员的值+1.示例:
public enum Number
{
a=1,
b,
c=1,
d
}
b的值为2,d的值为2.
(4)枚举类型与基础类型的转换
基础类型不能隐式转换为枚举类型
枚举类型也不能隐式转换为基础类型。示例:
public enum Number
{
a,
b,
c,
d
}
class Test
{
public static void Main()
{
int i=Number.a;//错误,要强制类型转换(int)Number.a
Number n;
n=2 //错误,要强制类型转换(Number)2
}
}
注意:以上枚举值都不能超过它的基础类型范围。否则会报错.
(5)使用枚举类型
using System;
public enum TimeofDay
{
Morning,
Afternoon,
Evening
}
class Test
{
static void WriteGreeting(TimeofDay timeofDay)
{
switch(timeofDay)
{
case TimeofDay.Morning:
Console.WriteLine("good morning");
break;
case TimeofDay.Afternoon:
Console.WriteLine("good afternoon");
break;
case TimeofDay.Evening:
Console.WriteLine("good evening");
break;
}
}
static void Main()
{
WriteGreeting(TimeofDay.Morning);
WriteGreeting(TimeofDay.Evening);
WriteGreeting(TimeofDay.Afternoon);
}
TimeofDay td = TimeofDay.Evening;
}
- C#枚举类型 标志枚举
- C#枚举类型研究
- C#枚举类型enum
- C#枚举类型enum
- C#枚举类型enum
- C#枚举类型
- c#枚举类型
- C#枚举类型
- c# 枚举 enum 类型
- C#枚举类型解析
- c#枚举类型
- C#枚举类型
- c# 枚举类型
- C#遍历枚举类型
- C#遍历枚举类型
- C#中的枚举类型
- C#枚举类型
- C#枚举类型解析
- 三种常见的Java应用性能挑战
- abstract和virtual的区别
- 如何用Spring整和ActiveMQ?
- newInstance()方法和new关键字
- U-Boot编译系统简要分析
- c#枚举类型
- CentOS upgrade PHP
- warning C4482: 使用了非标准扩展: 限定名中使用了枚举
- 几种数据类型转换方法的区别
- 20120803 AIX_shell监控指定目录下是否有指定的文件名的文件生产
- 写一个程序,模拟4个售票窗口共同卖100张火车票的程序。
- linux下C编程--利用statfs函数查看磁盘空间
- 探秘Java垃圾回收机制
- java什么时候用抽象类,什么时候用接口