项目开发中经常使用到枚举,个人总结有如下优点:
- 使用枚举可以使工程更直观,方便大家理解和项目维护。
- 可以减少数字或者string的错误输入导致不必要的问题。
给大家讲解一下常用的枚举操作:
枚举的关键字enum:
public enum AnimalType
{
None = 0,
Bird = 1,
Cat = 2,
Dog = 4,
}
枚举转换string
AnimalType.Dog.ToString()
枚举转换int
(int)AnimalType.Dog
int转换枚举
(AnimalType)1
string转换枚举
(AnimalType)Enum.Parse(typeof(AnimalType), "Dog");
判断枚举是否包含string
Enum.IsDefined(typeof(AnimalType), "Dog")
测试代码如下:
using System;
using UnityEngine;
public class EnumTest : MonoBehaviour
{
public enum AnimalType
{
None = 0,
Bird = 1,
Cat = 2,
Dog = 4,
}
private AnimalType _animal = AnimalType.Cat;
private void Awake()
{
// 通过枚举做一些逻辑处理
AnimalJump(_animal);
// 枚举转换string
Debug.Log(AnimalType.Dog.ToString());
// 枚举转换int
Debug.Log((int)AnimalType.Dog);
// 判断枚举是否包含int
if (Enum.IsDefined(typeof(AnimalType),1))
{
// int转换枚举
_animal = (AnimalType)1;
Debug.Log(_animal.ToString());
}
// 判断枚举是否包含string
if (Enum.IsDefined(typeof(AnimalType), "Dog"))
{
// string转换枚举
_animal = (AnimalType)Enum.Parse(typeof(AnimalType), "Dog");
Debug.Log(_animal.ToString());
}
}
private void AnimalJump(AnimalType type)
{
var jumpInfo = string.Empty;
switch (type)
{
case AnimalType.None:
break;
case AnimalType.Bird:
jumpInfo = "Bird Jump";
break;
case AnimalType.Cat:
jumpInfo = "Cat Jump";
break;
case AnimalType.Dog:
jumpInfo = "Dog Jump";
break;
default:
break;
}
Debug.Log(jumpInfo);
}
}