中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#與C++枚舉的區別是什么

發布時間:2022-04-26 10:43:00 來源:億速云 閱讀:130 作者:iii 欄目:開發技術

本篇內容介紹了“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++枚舉的區別是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

崇义县| 驻马店市| 阜南县| 安义县| 广宁县| 化德县| 阳城县| 抚宁县| 澄江县| 布拖县| 奉节县| 铅山县| 柳江县| 皋兰县| 鹤壁市| 德惠市| 淮北市| 义马市| 达州市| 桐梓县| 陇西县| 霍城县| 嘉荫县| 肇东市| 汽车| 恭城| 久治县| 年辖:市辖区| 仪征市| 灵石县| 庆阳市| 咸宁市| 休宁县| 三江| 肥东县| 台湾省| 余江县| 海兴县| 海口市| 葵青区| 土默特左旗|