列舉
- 人為限定取值范圍的整數
- 整數值的對應
- 位元位式用法
//默認從0開始:分別為0,1,2,3
enum Level{
Employee,
Manager,
Boss,
BigBoss,
}
class Person{
public int ID{get;set;}
public string Name {get;set;}
public Level Level{get;set;}
}
internal class Program{
public static void Main(string[] arg){
Person person = new Person();
person.Level = Level.Employee;
//結果為2
Console.WriteLine((int)Level.Boss);
}
}
未指定的列舉名的值將依著最后一個指定值向后依次遞增(注意是最后一個指定值)
//列舉中定義的可以自定義整數值
enum Level{
Employee = 100,
Manager,
Boss,
BigBoss,
}
//結果為100,101,102,103
//列舉中定義的整數值可以部分預設
enum Level{
Employee = 100,
Manager,
Boss = 102,
BigBoss,
}
//Manager自動為101,BigBoss自動為103
enum Level{
Employee=100,
Manager,
Boss=101,
BigBoss,
}
//結果為100,101,101,102,有兩個101也是合法的
//但不能有兩個Manager,即enum中的名稱不能重復,
位元位式用法
enum Skill{
Drive = 1, //二進制 0001
Cook = 2, //二進制 0010
Program = 4, //二進制 0100
Teach = 8, //二進制 1000
}
Person person = new Person();
//如果有多種技能呢?可以用list,但list“太重”
//采用“按位或”,得到多種技能
person.Skill = Skill.Drive | Skill.Cook | Skill.Program | Skill.Teach //二進制 1111,十進制的15
//結果為15
Console.WriteLine(person.Skill);
Console.WriteLine((person.Skill & Skill.Cook)>0); //結果為True,(1111 & 0010 = 0010)
Console.WriteLine((person.Skill & Skill.Cook) == Skill.Cook); //結果為True
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/285352.html
標籤:C#
上一篇:C#基礎_學習筆記--抽象類
下一篇:組合ContinueWith
