日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#枚举(Enum)小结

發布時間:2023/12/2 C# 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#枚举(Enum)小结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

枚舉概念

枚舉類型(也稱為枚舉)提供了一種有效的方式來定義可能分配給變量的一組已命名整數常量。該類型使用enum關鍵字聲明。

示例代碼1

enum Day { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };

默認情況下枚舉中每個元素的基本類型都是int。可以使用冒號指定另一種整數類型。

示例代碼2

enum Day : byte {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};

默認情況下,第一個枚舉值具有值0,并且每個連續枚舉數的值將增加1。

枚舉數可以使用初始值設定項來替代默認值。

若設置某一枚舉數的值,之后的枚舉數仍然按1遞增。

示例代碼3

enum Day {Sat=1, Sun, Mon, Tue=5, Wed, Thu, Fri};

每個枚舉都有一個基礎類型,該基礎類型可以是除char外的任何整數類型,枚舉元素的默認基礎類型是int。

已批準的枚舉類型有byte、sbyte、short、ushort、int、uint、long或ulong。

可以為枚舉類型的枚舉器列表中的元素分配任何值,也可以使用計算值。

示例代碼4

enum MachineState {PowerOff = 0,Running = 5,Sleeping = 10,Hibernating = Sleeping + 5 }

枚舉方法

獲取名稱

public static string GetName(Type enumType, object value);

示例代碼5

//獲取Day枚舉中Day.Friday的名稱,返回值為"Friday" System.Enum.GetName(typeof(Day), Day.Friday)

獲取名稱數組

public static string[] GetNames(Type enumType);

示例代碼6

string[] names = System.Enum.GetNames(typeof(Day));

獲取實例值得數組

public static Array GetValues(Type enumType);

實例代碼7

Array arr = System.Enum.GetValues(typeof(Day));

將枚舉常數的名稱或數值的字符串表示轉換成等效的枚舉對象

public static object Parse(Type enumType, string value);

示例代碼8

string day = Day.Friday.ToString(); var fri = (Day)System.Enum.Parse(typeof(Day),day);

相關常用方法可以參考枚舉基類 System.Enum

作為位標志的枚舉類型

可以使用枚舉類型來定義位標志,這使枚舉類型的實例能夠存儲枚舉器列表中定義的值的任何組合。?(當然,某些組合在你的程序代碼中可能沒有意義或不允許使用。)

創建位標志枚舉的方法是,應用?System.FlagsAttribute?屬性并適當定義一些值,以便可以對這些值執行?AND、OR、NOT?和?XOR?按位運算。?在位標志枚舉中,包括一個值為零(表示“未設置任何標志”)的命名常量。?如果零值不表示“未設置任何標志”,請勿為標志指定零值。

示例代碼9

[Flags] enum Days {None = 0x0,Sunday = 0x1,Monday = 0x2,Tuesday = 0x4,Wednesday = 0x8,Thursday = 0x10,Friday = 0x20,Saturday = 0x40 }

枚舉的位運算

|并集? &交集? ^差集? ~取反

為枚舉拓展新方法

示例代碼10

?

[Display(Name = "一周")] public enum Day {[Display(Name = "星期天")]Sunday,[Display(Name = "星期一")]Monday,[Display(Name = "星期二")]Tuesday,[Display(Name = "星期三")]Wednesday,[Display(Name = "星期四")]Thursday,[Display(Name = "星期五")]Friday,[Display(Name = "星期六")]Saturday } /// <summary> /// 枚舉拓展類 /// </summary> public static class EnumExtend {/// <summary>/// 根據System.ComponentModel.DataAnnotations下的DisplayAttribute特性獲取顯示文本/// </summary>/// <param name="t"></param>/// <returns></returns>public static string GetDisplayText(this Enum t){var t_type = t.GetType();var fieldName = Enum.GetName(t_type, t);var objs = t_type.GetField(fieldName).GetCustomAttributes(typeof(DisplayAttribute), false);return objs.Length > 0 ? ((DisplayAttribute)objs[0]).Name : null;} }

?

  

參考文獻:枚舉類型(C#編程指南)

轉載于:https://www.cnblogs.com/li-learning/p/CSharp_Enum.html

總結

以上是生活随笔為你收集整理的C#枚举(Enum)小结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。