C#获取枚举名称
EnumGetName( typeof(ChartType), seriesChartType )
例如:
EnmFormID formId = (EnmFormID)EnumParse(typeof(EnmFormID), DicKey["名称"]);
1、i的值是从1开始出现的,但是你这个程序总共输出13的3次方次结果,也就是2197次结果,前面的2098次结果被拖屏,找不到了,只输出最后的200次结果。
2、同1,前面的输出找不到。
3、同1
4、没发现错误。
怎么看到全部结果呢?你可以在第二层循环加个暂停语句,这样可以每过一个循环观察一次输出,不过你要按很多次继续,修改如下:
for(l=A;l<=K;l=puke(int(l)+1)){
//cout<<'\n'<<A<<'\t'<<l;
for(m=A;m<=K;m=puke(int(m)+1))
for(n=A;n<=K;n=puke(int(n)+1))
{
i=i+1;
cout<<i<<'\t';
print(l);
print(m);
print(n);
cout<<'\n'<<l<<'\t'<<m<<'\t'<<n<<'\t'<<A;
cout<<'\n'<<'\n';
if(i%100==0)
system("pause");//这里暂停一下
}
}
:enum设计出来是为了编写代码方便而使用的,底层并不保存枚举量名称,如果你真需要打印出enum的变量名称出来,可以使用下面的方式: typedef enum { A = 0, B, C }ENUM_SAM_T; char p[3]={"A","B","C"}; 然后可以在程序中做如下打印枚举量E的值
具体的枚举类型的使用可以去msdn去看,从你的错误提示看,都是提示类型不匹配的问题。
enum BAND CurrentBand =Band_MW;
enum BAND band;
band=CurrentBand+1;
以上语法是不对的,因为虽然Band_MW有个数字的序号,但是整形和枚举类型还是不同的,需要进行牵制类型转换。针对这个我写了个小程序。
#include<stdioh>
enum BAND {Band_LW,Band_MW,Band_FM,Band_SW,Band_OIRT};
void setFrequency (enum BAND band){
printf("%d\n",band);
}
void main(){
enum BAND CurrentBand =Band_MW;
enum BAND band;
band=(BAND)((int)CurrentBand+1);//这里一定要转换。
setFrequency(band);
}
这样是可以的。我还要说一下,我是用的是VS2008,对不同的编译器可能会不同,希望有帮助。
枚举定义demo
经常使用的几个方法:
枚举属性,get方法,构造方法,通过code获取枚举,获取全部枚举。
通过code获取枚举这个方法,如果有更好的,欢迎留言~
传统枚举类型定义举例:
enum Animal //枚举类型名字
{
monkey, //枚举中的元素值
horse,
lion,
elephant,
pig
}
传统枚举的使用:特点有3个
1、定义的不同枚举类型,枚举中的元素值不能重复出现;作用域是全局
2、枚举变量的值默认转换成int类型,所以输出了cout<<aAnimal<<endl;
3、枚举值可以给int类型的变量赋值也是自动类型转换,枚举类型值先自动转换为int类型。
4、其实传统枚举类型的定义:enum Animal:int{ };也对,在vs2013试的;不算特点
强枚举类型的使用。
总结一下:传统枚举和强枚举类型的区别:
1、强枚举类型: 不会在同一个工程下,因为两个枚举类型有相同的元素值而发生冲突。enum class Person:int //不填也行,因为枚举值默认都必须是int类型
{
man=20,woman=10,noPerson=30
};
enum class KPerson:int
{
man = 20,woman = 10,noPerson = 30
};
2、强枚举类型不会把枚举元素的值自动转换为int类型,即便它是int类型。
Person per = Person::man;
cout << (int)per << endl;
//cout << per << endl; 这样不行
3、传统枚举类型:在同一工程下,不用的枚举类型包含相同的元素是会发生冲突的。
如下这样会发生重复定义的错误
enum Animal :int {monkey = 3,horse = 1,lion = 8,elephant = 18,pig = 1};
enum KAnimal :int{monkey = 3,horse = 1,lion = 8, elephant = 18,pig = 18};
4、传统枚举类型,枚举元素自动转换为int
cout<<monkey<<endl; //自动转换为int。
强枚举:
cout<<(int)Person::man<<endl; //不会自动转换为int ,所以想使用cout函数,就的进行强制转换。
把枚举转换成int型就可以了 。 枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。例如对枚举weekday的元素再作以下赋值: sun=5;mon=2;sun=mon; 都是错误的。 枚举元素本身由系统定义了一个表示序号的数值
以上就是关于c#中如何将一个字符串,转换为一个枚举的名称注意是名称,不是里面的枚举值全部的内容,包括:c#中如何将一个字符串,转换为一个枚举的名称注意是名称,不是里面的枚举值、C++ 枚举类型 扑克牌游戏在13张牌中抽取列出所有结果、如何打印出枚举变量的名称等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)