本次练习在Unity工程中实现。
C#遍历枚举遍历
C#遍历枚举的方法如下:
枚举可用来存储字符串与数字的值对,相当于一个对照表
常用方法:GetName(),GetValue(),Parse()
头文件:using System;
/// <summary>
/// 枚举星期
/// </summary>
public enum Weekdays { Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday };
/// <summary>
/// 遍历枚举
访法一
/// </summary>
private void ergodicEnum1()
{
Debug.Log("-------------------------------------------------------------------");
foreach (int myday in Enum.GetValues(typeof(Weekdays)))
{
/// 枚举名字
string name = Enum.GetName(typeof(Weekdays), myday);
/// 枚举的值
int value = myday;
Debug.Log(string.Format("名字 = {0},值 = {1}", name, myday));
}
Debug.Log("-------------------------------------------------------------------");
}
/// <summary>
/// 枚举颜色
/// </summary>
public enum Colors { Red = 1, Green = 2, Blue = 4, Yellow = 8 };
/// <summary>
/// 遍历枚举
访法二
/// </summary>
private void ergodicEnum2()
{
Type color = typeof(Colors);
Debug.Log("-------------------------------------------------------------------");
foreach (string c in Enum.GetNames(color))
{
Debug.Log(string.Format("{0,-11}= {1}",c, Enum.Format(color, Enum.Parse(color, c), "d")));
}
Debug.Log("-------------------------------------------------------------------");
foreach (string c in Enum.GetNames(typeof(Colors)))
{
Debug.Log(string.Format("{0,-11}= {1}", c, Enum.Format(color, Enum.Parse(color, c), "d")));
}
Debug.Log("-------------------------------------------------------------------");
Colors myColors = Colors.Red | Colors.Green | Colors.Blue | Colors.Yellow;
Debug.Log(string.Format("myColors holds a combination of colors. Namely: {0}", myColors));
Debug.Log("-------------------------------------------------------------------");
}
枚举值转换(字符串转换为枚举和整数转换为枚举)
//假设定义了一个这样的枚举类型:
enum MyEnum
{
aa = 1,
bb = 2
}
///---------------------1、字符串转换为枚举:
/// <summary>
/// 字符串转换为枚举:
/// </summary>
public void Test1()
{
string strA = "aa";
MyEnum myEnum = (MyEnum)Enum.Parse(typeof(MyEnum), strA);
}
/// <summary>
/// 字符串转换为枚举:
/// 上面的 Test1 方法是区分大小写的,也就是说,如果strA的值为“AA”,则转换失败;如果不需要区分大小写,需要使用下面的方法:
/// </summary>
public void Test2()
{
string strA = "aa";
//当最后一个参数设置为true时忽略大小写
MyEnum myEnum = (MyEnum)Enum.Parse(typeof(MyEnum), strA, true);
}
///---------------------2、整数转换为枚举值
/// <summary>
/// 整数转换为枚举值
/// 这种方法可以将一个整数转换为枚举类型;如果iA不是一个有效的枚举值,则转换失败。
/// </summary>
public void Test3()
{
int iA = 2;
MyEnum myEnum = (MyEnum)iA;
}

2673

被折叠的 条评论
为什么被折叠?



