1. 程式人生 > >c# 枚舉Enum

c# 枚舉Enum

typeof mes col 顯式 pan strong bug pla 隱式

枚舉是C#編程語言的一種類型,跟類、結構、密封類、分布類、委托、事件、抽象都是同一級別的類型。

枚舉本身可以有修飾符,但枚舉的成員始終是公共的,不能有訪問修飾符。枚舉本身的修飾符僅能使用public和internal。

枚舉是值類型,隱式繼承自System.Enum,不能手動修改。

枚舉成員不能相同,但枚舉的值可以相同,默認情況下,枚舉中的第一個變量被賦值為0,其他的變量的值按定義的順序來遞增(0,12,3...),如果enum中的部分成員顯式定義了值,而部分沒有,那麽沒有定義值的成員還是會按照上一個成員的值來遞增賦值。

常用方法:

技術分享圖片

枚舉轉換:

Enum-->String:

1.利用Object.ToString()方法:如Colors.Green.ToString()的值是"Green"字符串;

2.利用Enum的靜態方法GetName與GetNames:例如:Enum.GetName(typeof(Colors),3))與Enum.GetName(typeof(Colors), Colors.Blue))的值都是"Blue"

Enum-->Int:

因為枚舉的基類型是除 Char 外的整型,所以可以進行強制轉換。

例如:(int)Colors.Red, (byte)Colors.Green

String-->Enum:

public static Object Parse(Type enumType,string value)

例如:(Colors)Enum.Parse(typeof(Colors), "Red")

Int-->Enum:

可以強制轉換將整型轉換成枚舉類型。

例如:Colors color = (Colors)2 ,那麽color即為Colors.Blue

判斷某個整型是否定義在枚舉中的方法:Enum.IsDefined

public static bool IsDefined(Type enumType,Object value)

例如:Enum.IsDefined(typeof(Colors), 3))

枚舉遍歷:

foreach (int good in Enum.GetValues(typeof(ItemCode)))
{
  Debug.Log(Player.instance.GetGoodInfo().GetItemCountByItemCode(good)
+ " " + good); }

c# 枚舉Enum