test
public enum TestEnum {
	A,
	B,
	C
}
 
public class Reflector {
	public void Test() {
		var enumType = typeof(TestEnum);
		var fieldInfo = enumType.GetField("A");
		var enumValue = fieldInfo.GetValue(null); // TestEnum.A (TestEnum type)
		...
	}
}
  • C#中枚举类型与它的基本类型(Int、String等)不等效,Tolua等框架在解析参数时不会自动转换为对应的Enum类型,即使方法的参数类型是确定的。
    • 事实上Tolua在导出枚举类型到lua时会产生一个IntToEnum的类型转换函数,专用于强转这个枚举类型。
  • 反射使用枚举时需要用上述类似获取静态类字段的方式来获取枚举类型的值,再传递给方法使用。