《随笔十一》——C#中的 “ 枚举、位标志 ”

目录枚举枚举值与整型值的转换C++中的枚举和C#的枚举的区别枚举枚举是由程序员自定义的类型:与结构一样,枚举是值类型, 因此直接存储它们的数据,而不是分开存储引用和数据。 枚举只有一种类型的成员: 命名的整数值常量。枚举: 允许定义一个 枚举类型名,然后用枚举类型名声明的变量,其变量的值只能取自 括号内的这些标识符。enum 枚举类型标识符 : 可取的基...
摘要由CSDN通过智能技术生成

目录

枚举

枚举值与整型值的转换

C++中的枚举和C#的枚举的区别



枚举


 枚举是由程序员自定义的类型:

  • 与结构一样,枚举是值类型, 因此直接存储它们的数据,而不是分开存储引用和数据。
  • 枚举只有一种类型的成员: 命名的整数值常量。

 枚举: 允许定义一个 枚举类型名,然后用枚举类型名声明的变量,其变量的值只能取自 括号内的这些标识符。

enum 枚举类型标识符 : 可取的基本类型
{
  //枚举成员常量
}

注意:如果没有写可取的基本类型, 默认情况下该类型为int。  枚举的基本类型可以是: byte sbyte short ushort int uint long ulong.  枚举的类型是任何整数类型。

  • 其中,每个枚举成员常量都被赋予一个底层类型的常量值。 该成员常量的值可以是可取的基本类型的该类型的任何值。
  • 在默认情况下, 编译器把每一个成员赋值为0,并对每一个后续成员赋的值比前一个成员多1.

要显式地设置一个成员的名称,在枚举声明中的变量名之后使用初始化表达式。  尽管不可以有重复的名称,但是可以有重复的值。或者说 还可以使用一个值(枚举常量)作为另一个枚举(枚举常量)的基础值,为多个枚举指定相同的值(不过要注意的是: 这里可能产生预料不到的问题。).(C++中不可以这样): 

namespace Ch05Ex03
{
   enum Light:uint
    {
        value1=22,
        value2,
        value3 = value1,
        value4,
        value5=22
    }
  
    class Program
    {
      
        static void Main(string[] args)
        {
            Light myLight1 = Light.value1;
            Light myLight2 = Light.value2;
            Light myLight3 = Light.value3;
            Light myLight4 = Light.value4;
            Light myLight5 = Light.value5;
            Light myLight6 = myLight5; // 还可以使用同类型的枚举变量复制值,myLight6 是 myLight5 的副本

            WriteLine($"输出myLight1的值  {myLight1}——{(int)myLight1}");
            WriteLine($"输出myLight2的值:{myLight2}——{(int)myLight2}");
            WriteLine($"输出myLight3的值:{myLight3}——{(int)myLight3}");
            WriteLine($"输出myLight4的值:{myLight4}——{(int)myLight4}");
            WriteLine($"输出myLight5的值:{myLight5}——{(int)myLight5}");
            WriteLine($"输出myLight6的值:{myLight6}——{(int)myLight6}");

            ReadKey();
        }
    }
}

输出结果为:

输出myLight1的值  value5——22
输出myLight2的值:value4——23
输出myLight3的值:value5——22

输出myLight4的值:value4——23
输出myLight5的值:value5——22  
输出myLight6的值:value5——22

 注意: 以循环的方式赋值可能会产生错误。 


                
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值