枚举简介
枚举类型是由基础整数数值类型的一组命名常量定义的值类型。
public enum MyColor
{
Red,
Orange,
Yellow,
Green,
Cyan,
Blue,
Purple
}
enum ErrorCode : ushort
{
None = 0,
Unknown = 1,
ConnectionLost = 100,
OutlierReading = 200
}
[Flags]
public enum Days
{
None = 0b_0000_0000, // 0
Monday = 0b_0000_0001, // 1
Tuesday = 0b_0000_0010, // 2
Wednesday = 0b_0000_0100, // 4
Thursday = 0b_0000_1000, // 8
Friday = 0b_0001_0000, // 16
Saturday = 0b_0010_0000, // 32
Sunday = 0b_0100_0000, // 64
Weekend = Saturday | Sunday
}
默认情况下,枚举成员的关联常数值为类型 int;它们从零开始,并按定义文本顺序递增 1。
可以使用枚举类型,通过一组互斥值或选项组合来表示选项。 若要表示选项组合,请将枚举类型定义为位标志。
个人总结:
C# 遇到需要使用 switch-case 语句的情况考虑使用枚举
- 约束传入参数
- 快速列出case分支
enum int/ulong/byte string 转换
using UnityEngine;
using System;
public class Enum_Learn : MonoBehaviour
{
void Start()
{
MyColor myColor = MyColor.Green;
//enum->string
string str = myColor.ToString();
Debug.Log(str);
//enum->int
int index = (int)myColor;
Debug.Log(index);
//int->enum
MyColor my2Color = (MyColor)Enum.ToObject(typeof(MyColor), 0);
Debug.Log(my2Color);
//string->enum
MyColor my3Color = (MyColor)Enum.Parse(typeof(MyColor), "Blue");
Debug.Log(my3Color);
}
}
public enum MyColor
{
Red,
Orange,
Yellow,
Green,
Cyan,
Blue,
Purple
}