新手求助:关于枚举~ Applied .NET framework 第13章讲这个 非常得清楚 楼主用电脑下一个瞧瞧可以通过改变{0}来改变显示 {0:F}和{0:H}试试这两个 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 using System;[Flags]public enum Seasons{ Summer = 1, Autumn = 2, Winter = 4, Spring = 8,}class Program{ static void Main(string[] args) { Console.WriteLine("{0}",(Seasons)12); Console.ReadKey(); }}当你用Console.WriteLine输出的时候,实际上是调用了ToString()方法,编译器会试图将12所表示的数值翻译为枚举类型中对应的符号,现在枚举实例对应的数值是12,因此它没有对应的符号,但是ToString()方法会检测到Seasons类型上有应用[Flags]特性,它会据此把枚举数值看做是一组位标记,而非一个单独的数值,由于12是由4和8组合而成,Seasons又定义了4,8所对应的枚举值,所以ToString()方法将产生下面的字符串Winter,Spring 谢谢两位大侠帮助,我在网上查到一条关于flags的解释: Flags 属性表示一种特殊的枚举,称为位域。运行库本身不区分传统枚举与位域,但您的语言可能会区分二者。当区分二者的时候,可以对位域(而不是枚举)使用位操作符以产生未命名的值。枚举一般用于列出唯一的元素,如一周的各天、国家或地区名称,等等。位域一般用于列出可能联合发生的质量或数量,比如 Red And Big And Fast。 可否如下理解:当Console.WriteLine("{0}",(Seasons)8);时 ,枚举属于上解释中的“运行库本身不区分传统枚举与位域”,此处属于枚举正常运行,并没有处理到Flags的特性。当Console.WriteLine("{0}",(Seasons)12);时,枚举无法解释这种情况,转而调用Flags位域功能,而上述解释中的"使用位操作符以产生未命名的值" 其中的未命名值是否可以理解为就是这里12,而“使用位操作符以产生”是否是一个循环的过程,那么循环的工作是如何进行?以 public enum Seasons{ Summer = 1, Autumn = 2, Winter = 4, Spring = 8,}为例,此搜索过程是否依照常理,对枚举的4个成员进行逐一组合对比? 替换TEXTBOX中特定的字符串 关于Devexpress的GridControl 排列组合的问题!比较简单 怎样控制word文档 求快速统计海量数据中符合条件的记录数量 WPF代码方式添加的控件用Storyboard 想要源码的朋友,进来跟帖 菜鸟:如何在主form中对label控件的text属性赋值?急! DropDownList的问题: ---在线等待 C# 关于颜色 高手来帮帮忙啊,超出索引怎么解决啊 将数据库中的二进制图片信息还原为图片
[Flags]
public enum Seasons
{
Summer = 1,
Autumn = 2,
Winter = 4,
Spring = 8,
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("{0}",(Seasons)12);
Console.ReadKey();
}
}当你用Console.WriteLine输出的时候,实际上是调用了ToString()方法,编译器会试图将12所表示的数值翻译为枚举类型中对应的符号,现在枚举实例对应的数值是12,因此它没有对应的符号,但是ToString()方法会检测到Seasons类型上有应用[Flags]特性,它会据此把枚举数值看做是一组位标记,而非一个单独的数值,由于12是由4和8组合而成,Seasons又定义了4,8所对应的枚举值,所以ToString()方法将产生下面的字符串Winter,Spring
Flags 属性表示一种特殊的枚举,称为位域。运行库本身不区分传统枚举与位域,但您的语言可能会区分二者。当区分二者的时候,可以对位域(而不是枚举)使用位操作符以产生未命名的值。枚举一般用于列出唯一的元素,如一周的各天、国家或地区名称,等等。位域一般用于列出可能联合发生的质量或数量,比如 Red And Big And Fast。 可否如下理解:
当Console.WriteLine("{0}",(Seasons)8);时 ,枚举属于上解释中的“运行库本身不区分传统枚举与位域”,此处属于枚举正常运行,并没有处理到Flags的特性。
当Console.WriteLine("{0}",(Seasons)12);时,枚举无法解释这种情况,转而调用Flags位域功能,而上述解释中的"使用位操作符以产生未命名的值" 其中的未命名值是否可以理解为就是这里12,而“使用位操作符以产生”是否是一个循环的过程,那么循环的工作是如何进行?
以 public enum Seasons
{
Summer = 1,
Autumn = 2,
Winter = 4,
Spring = 8,
}为例,此搜索过程是否依照常理,对枚举的4个成员进行逐一组合对比?