C#与C++枚举的区别对比和使用案例

 更新时间:2022年04月26日 08:27:58   作者:農碼一生  
本文详细讲解了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#实现单例模式的多种方式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • C#调用OpenCV开发简易版美图工具【推荐】

    C#调用OpenCV开发简易版美图工具【推荐】

    本文主要介绍在WPF项目中使用OpenCVSharp3-AnyCPU开源类库处理图片,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧
    2019-10-10
  • C#集合查询Linq在项目中使用详解

    C#集合查询Linq在项目中使用详解

    本文主要介绍了C#集合查询Linq在项目中使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • C#中的Linq to Xml详解

    C#中的Linq to Xml详解

    这篇文章主要介绍了C#中的Linq to Xml详解,本文给出转换步骤以及大量实例,讲解了生成xml、查询并修改xml、监听xml事件、处理xml流等内容,需要的朋友可以参考下
    2015-01-01
  • c#生成随机数示例分享

    c#生成随机数示例分享

    这篇文章主要介绍了c#生成随机数示例分享,需要的朋友可以参考下
    2014-03-03
  • C#中的HttpWebRequest类用法详解

    C#中的HttpWebRequest类用法详解

    本文详细讲解了C#中的HttpWebRequest类的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • C# 创建MDB数据库、并存放表格数据的案例

    C# 创建MDB数据库、并存放表格数据的案例

    这篇文章主要介绍了C# 创建MDB数据库、并存放表格数据的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • C#定制Excel界面并实现与数据库交互的方法

    C#定制Excel界面并实现与数据库交互的方法

    这篇文章主要介绍了C#定制Excel界面并实现与数据库交互的方法的相关资料,需要的朋友可以参考下
    2015-11-11
  • 基于WPF制作一个可编程画板

    基于WPF制作一个可编程画板

    这篇文章主要为大家详细介绍了如何基于WPF制作一个可编程画板,文中的示例代码讲解详细,对我们学习或工作有一定帮助,感兴趣的小伙伴可以了解一下
    2023-05-05
  • C#使⽤XmlReader和XmlWriter操作XML⽂件

    C#使⽤XmlReader和XmlWriter操作XML⽂件

    这篇文章介绍了C#使⽤XmlReader和XmlWriter操作XML⽂件的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06

最新评论