c# 枚舉Enum
枚舉是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