枚举类型中的每个元素,可以直接使用,不必通过类型.元素的方式调用
没有++操作
#include <iostream>
using namespace std;
enum week{Monday,Thuesday};
int main()
{
week day;
day = Monday;
day = Thuesday;
//day = 4; 报错 类型转化出错
//day++; 出错,没有++ 操作
cout << day << endl;//输出结果为1
return 0;
}
二、C#
枚举类型中的每个元素必须通过类型.元素的形式调用
可以++操作
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace myEnum_Structure
{
enum Week
{
Monday,
Thuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
class Program
{
static void Main(string[] args)
{
Week day;
day = Week.Sunday;
Console.WriteLine(day);//输出Sunday
day++;
Console.WriteLine(day);//输出7
}
}
}
C#枚举案例
一、普通调用
public enum NoticeType
{
Notice = 'A',
LabRule = 'H',
HotInformation = 'N',
Column = 'C',
All = '1',
Null = '0'
}
private void button1_Click(object sender, EventArgs e)
{
//新建枚举类型
NoticeType noticeType1 = NoticeType.Column;
//把枚举类型转换为string d="Column"
string d = noticeType1.ToString();
//取得枚举类型的基数 'C'
char dd = (char)noticeType1;
//通过基数取得对应的枚举类型
NoticeType noticeType2 = (NoticeType)Char.Parse("A");//Notice
//通过名称取得枚举类型
NoticeType noticeType3 = (NoticeType)Enum.Parse(typeof(NoticeType), "Notice");
}
二、获取描述信息
[Description("会员等级")]
enum MemberLevel
{
[Description("金牌会员")]
gold = 1,
[Description("银牌会员")]
silver = 2,
[Description("铜牌会员")]
copper = 3
}
/// <summary>
///
/// </summary>
/// <param name="value">枚举值</param>
/// <param name="isTop">是否是顶级标题的描述信息</param>
/// <returns></returns>
public static string GetDescription(this Enum value, bool isTop = false)
{
Type enumType = value.GetType();
DescriptionAttribute attr = null;
if (isTop)
{
attr = (DescriptionAttribute)Attribute.GetCustomAttribute(enumType, typeof(DescriptionAttribute));
}
else
{
// 获取枚举常数名称。
string name = Enum.GetName(enumType, value);
if (name != null)
{
// 获取枚举字段。
FieldInfo fieldInfo = enumType.GetField(name);
if (fieldInfo != null)
{
// 获取描述的属性。
attr = Attribute.GetCustomAttribute(fieldInfo, typeof(DescriptionAttribute), false) as DescriptionAttribute;
}
}
}
if (attr != null && !string.IsNullOrEmpty(attr.Description))
return attr.Description;
else
return string.Empty;
}
调用
MemberLevel gold = MemberLevel.gold;
Console.WriteLine(gold.GetDescription());
System.Console.Read();
到此这篇关于C#与C++枚举的区别对比和使用案例的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持易知道(ezd.cc)。