我知道这听起来有点奇怪但是可以将字符串转换为局部变量,如下所示:
String actionName = "eat";
(local variable)actionName;
Pet.actionName;
//and computer will read it as Pet.eat;
切换中的看起来像是这样:
String actionName = "eat";
switch (actionName)
{
eat:
return Pet.eat;
default:
return;
}
答案 0 :(得分:5)
您可以使用反射:
String actionName = "eat"; // Actually, property/field name
// looks like you want to get static property
// without creating Pet instance
var result = typeof(Pet).GetProperty(actionName, BindingFlags.Static | BindingFlags.Public).GetValue(null);
如果actionName
实际上是字段(不是属性),则语法应该稍微更改一下:
var result = typeof(Pet).GetField(actionName, BindingFlags.Static | BindingFlags.Public).GetValue(null);
编辑:如果Pet
只是枚举,您只需解析
String actionName = "eat";
Pet result = (Pet) (Enum.Parse(typeof(Pet), actionName));