本文详细讲解了C#与C++枚举的区别对比和使用案例,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
C++与C#中枚举的区别
一、C++
- 枚举类型中的每个元素,可以直接使用,不必通过类型.元素的方式调用
 - 没有++操作
 
#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++枚举的区别对比和使用案例的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持得得之家。
				 沃梦达教程
				
			本文标题为:C#与C++枚举的区别对比和使用案例
				
        
 
            
        
             猜你喜欢
        
	     - 如何使用C# 捕获进程输出 2023-03-10
 - user32.dll 函数说明小结 2022-12-26
 - Unity Shader实现模糊效果 2023-04-27
 - Oracle中for循环的使用方法 2023-07-04
 - c# 模拟线性回归的示例 2023-03-14
 - 在C# 8中如何使用默认接口方法详解 2023-03-29
 - WPF使用DrawingContext实现绘制刻度条 2023-07-04
 - C# 使用Aspose.Cells 导出Excel的步骤及问题记录 2023-05-16
 - .NET CORE DI 依赖注入 2023-09-27
 - Unity3D实现渐变颜色效果 2023-01-16
 
						
						
						
						
						
				
				
				
				