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”.

 

posted @ 2021-01-31 10:56  遥月  阅读(2225)  评论(0)    收藏  举报