c# 枚举 及类型转换

枚举默认第一个符号为0开始,也可以自己指定开始值,枚举默认类型为int,枚举实质是一组数字的集合
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace test
{
public enum MyEnum
{
男, //男数值为0,狗为101,自动加1
女=100,
狗,
}
class Program
{
static void Main(string[] args)
{
//枚举转换为int类型
int a = (int)MyEnum.男;
Console.WriteLine(a);
//int转换为枚举类型
int b = 3;
MyEnum c = (MyEnum)b;
Console.WriteLine(c);
//将枚举类型转换为字符串,所有类型都可转换为字符串!tostring()
string e = MyEnum.男.ToString();
Console.WriteLine(e);
//将字符串转换为枚举
string f = "男";
//.parse(string)只能转换string为其他类型,
//parse返回的为基类(int类型),必须再显示转换(强制转化)为自定义MyEnum才能行
//如果为int类型,则不用在强制转化
MyEnum dd = (MyEnum)Enum.Parse(typeof(MyEnum), f);
Console.WriteLine(dd);
//注意:将字符串转换为枚举,string必须是枚举中有的序列或者值,否则报错
//例如string f = "dddd"报错。如果是int,枚举中有显示值,没有显示数字本身,并不报错
Console.ReadLine();
}
}
}


扩展知识:
| 运算符是为整型和 bool 预定义的。 对于整型, | 计算操作数的按位“或”, 只有0|0时是0,其它是1。 对于 bool 操作数, | 计算操作数的逻辑“或”;
为整型和 bool 类型预定义了二进制 & 运算符。 对于整型,& 计算操作数的逻辑按位“与”,只有1&1为1,其它为0。 对于 bool 操作数,& 计算操作数的逻辑“与”;
二进制运算符&通过对两个操作数一位一位的比较产生一个新的值,对于每个位,只有两个操作数的对应位都为1时结果才为1.如10000001&11000000的结果为“10000000”.

浙公网安备 33010602011771号