c++输入枚举成员名字获得值的方法

c++输入枚举成员名字获得值的方法,第1张

没有什么好办法,只有用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中枚举类型的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9813589.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存