C#中枚举和位域的使用范例

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; namespace 枚举及位域使用实例 { //定义一个枚举 public enum RootVegetables { 山药=0, 萝卜=1, 青菜=2, 西红柿=3 } //定义一个位域 //[Flags] [Flags] public enum Seasons { 夏天 = 1, 秋天 = 2, 冬天 = 3, 春天 = 8, //位域:将枚举作为位域(即一组标志)来处理 所有季节 = 夏天| 秋天 |冬天 |春天, } class Program { static void Main(string[] args) { //实例化一个哈希表 Hashtable myHashtable = new Hashtable(); //为哈希表中的元素赋值 myHashtable[RootVegetables.山药] = Seasons.所有季节; myHashtable[RootVegetables.萝卜] = Seasons.春天; myHashtable[RootVegetables.青菜] = Seasons.夏天|Seasons.秋天; myHashtable[RootVegetables.西红柿] = Seasons.秋天; //声明一个Seasons类型的数组,使用枚举值 Seasons[] seasons = new Seasons[] { Seasons.春天, Seasons.夏天, Seasons.秋天, Seasons.冬天 }; for (int i = 0; i < seasons.Length; i++) { Console.WriteLine("/r/n 下面的蔬菜被收获在" + seasons[i].ToString("G") + ":"); //循环访问哈希表中的元素 foreach (DictionaryEntry e in myHashtable) { //判断哈希表中的值是否与数组中的值有交集 //按位“与”运算符&用于比较两个整数的相应位,如果两个数的对应位都是1,返回相应的结果为1,有一个是0,返回就是0 /*转换成二进制数然后每位取相应的与或操作。然后将得到的二进制数转化成10进制。 例如:1|85就是0000001|1010101,1|1=1,1|0=1,0|0=0,得出结果1010101,转化成10进制为85. ^为异或,具体的:1^0=1,0^0=1^1=0。 */ if (((Seasons)e.Value & seasons[i]) > 0) { Console.WriteLine("/t" + ((RootVegetables)e.Key).ToString("G")); } } } Console.ReadLine(); } } }  

你可能感兴趣的:(String,C#,Class)