C#与C++枚举的区别对比和使用案例
C++与C#中枚举的区别
一、C++
枚举类型中的每个元素,可以直接使用,不必通过类型.元素的方式调用没有++操作#includeusing 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
}
///
///
///
/// 枚举值
/// 是否是顶级标题的描述信息
///
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++枚举的区别对比和使用案例的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
X 关闭
X 关闭

