没有什么好办法,只有用switch。将输入的值储存到一个string变量中,然后swtich+case一长串
用enum没有意义的,因为enum在c++里经过编译后实际上就是多个const整型,你的定义其实差不多相当于
const int ROCK=0;
const int SCISSOR=1;
const int CLOTH=2;
……
当然还是有一定差距的,就是在于你可以定义一个变量,内容限定为enum中的这些整型的值。然后,就我所知,没有其他的差别了
所以完全没办法把他们关联到字符串上。
C#不允许使用字符串作为枚举值,建议你使用如下的静态类来代替枚举
public static class LoanType
{
public const string 个人 = "A";
public const string 公司 = "B";
}
如何获取mysql中枚举类型的值
mysql_query("SET NAMES 'utf-8'");
修改成
mysql_query("SET NAMES 'UTF8'");
int a=1;
Url u=(Url)a;
var a = typeof(Url)GetField(uToString())GetCustomAttributes(typeof(DescriptionAttribute), false)FirstOrDefault() as DescriptionAttribute;
var d = aDescription;
//d就是你想要的值
查看API文档知:返回带指定名称的指定枚举类型的枚举常量。名称必须与在此类型中声明枚举常量所用的标识符完全匹配。(不允许使用额外的空白字符。)
//解释上面红色一行的意思:即:我下面的方法public List<OrderProductEntity> queryByStatus(String status) 这里传过来的字符串必须与枚举重对象一致,不然找不到该枚举类型。
import comeceecentityapiStringValuedEnum;
public enum OrderStatus implements StringValuedEnum {
CREATED("新订单"), APPROVED("确认")
,DEPOSIT("定金已付"),PAID("付清")
CANCELLED("取消");
//对这个枚举说明一下CREATED是枚举对象 新订单是CREATED枚举对象的值
//Systemoutprintln(OrderStatus CREATED); 输出的结果是CREATED 而不是CREATED("新订单")
// Systemoutprintln(OrderStatus CREATEDgetValue()); 输出的结果是 新订单
private String value;
OrderStatus(String value) {
thisvalue = value;
}
@Override
public String getValue() {
return value;
}
}
//String status假设传递过来的是CREATED
public List<OrderProductEntity> queryByStatus(String status) {
OrderStatus statu = EnumvalueOf(OrderStatusclass, status); //根据传过来的字符串CREATED 找到OrderStatus statu枚举
String hql ="from OrderProductEntity op where opstatus=";
List<OrderProductEntity> lst = getHibernateTemplate()find(hql, statu); //将找到的枚举statu 传到hql语句中
getHibernateTemplate()flush();
getHibernateTemplate()clear();
return lst;
}
首先定义枚举
enum
weekdays
{
monday,
tuesday,
wednesday,
thursday,
friday,
saturday,
sunday
}
在主函数中
weekdays
day
=
weekdaysmonday;
consoleWriteLine("day={0}",day);
//输出的是
monday
weekdays
day1
=
weekdaysfriday;
int
a
=
(int)day1;
consoleWriteLine("a={0}",a);
//输出的是int
类型,输出为4
要转换为int类型要
强制类型转换
枚举定义demo
经常使用的几个方法:
枚举属性,get方法,构造方法,通过code获取枚举,获取全部枚举。
通过code获取枚举这个方法,如果有更好的,欢迎留言~
以上就是关于c++输入枚举成员名字获得值的方法全部的内容,包括:c++输入枚举成员名字获得值的方法、C#中枚举的问题 public enum LoanType { 个人 = "A", 公司 = "B" } 如何获取'A' 和'B'、如何获取mysql中枚举类型的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)