一、枚舉類型:
枚舉類型是一種獨特的值類型,它用於聲明一組具有相同性質的常量。
1、創建一個控制台應用程序通過枚舉來判斷當前日期是星期幾:
1 class Program 2 { 3 enum MyDate //使用enum創建枚舉 4 { 5 Sun = 0, //設置枚舉值名稱Sun,枚舉值為0 6 Mon = 1, //設置枚舉值名稱Mon,枚舉值為1 7 Tue = 2, //設置枚舉值名稱Tue,枚舉值為2 8 Wed = 3, //設置枚舉值名稱Wed,枚舉值為3 9 Thi = 4, //設置枚舉值名稱Thi,枚舉值為4 10 Fri = 5, //設置枚舉值名稱Fri,枚舉值為5 11 Sat = 6 //設置枚舉值名稱Sat,枚舉值為6 12 } 13 14 static void Main(string[] args) 15 { 16 int k = (int)DateTime.Now.DayOfWeek; //獲取代表星期幾的返回值 17 switch (k) 18 { 19 //如果k等於枚舉變量MyDate中的Sun的枚舉值,則輸出今天是星期日 20 case (int)MyDate.Sun: Console.WriteLine("今天是星期日"); break; 21 //如果k等於枚舉變量MyDate中的Mon的枚舉值,則輸出今天是星期一 22 case (int)MyDate.Mon: Console.WriteLine("今天是星期一"); break; 23 //如果k等於枚舉變量MyDate中的Tue的枚舉值,則輸出今天是星期二 24 case (int)MyDate.Tue: Console.WriteLine("今天是星期二"); break; 25 //如果k等於枚舉變量MyDate中的Wed的枚舉值,則輸出今天是星期三 26 case (int)MyDate.Wed: Console.WriteLine("今天是星期三"); break; 27 //如果k等於枚舉變量MyDate中的Thi的枚舉值,則輸出今天是星期四 28 case (int)MyDate.Thi: Console.WriteLine("今天是星期四"); break; 29 //如果k等於枚舉變量MyDate中的Fri的枚舉值,則輸出今天是星期五 30 case (int)MyDate.Fri: Console.WriteLine("今天是星期五"); break; 31 //如果k等於枚舉變量MyDate中的Sat的枚舉值,則輸出今天是星期六 32 case (int)MyDate.Sat: Console.WriteLine("今天是星期六"); break; 33 } 34 Console.ReadLine(); 35 36 } 37 }
二、類型轉換
類型轉換時將一種類型轉換為另一種類型。轉換可以是隱式轉換或者是顯示轉換
1、隱式轉換
所謂隱式轉換就是不需要聲明就能進行的轉換
short、ushort、int、uint、long、float、double或decimal
short int、long、ulong、float、double或decimal ushortint、uint、long、ulong、float、double或decimal
int long、float、double或decimal uint int、uint、long、float、double或decimal char ushort、int、uint、long、ulong、float、double或decimal float double ulong float、double或decimal longfloat、double或decimal
將int類型的值隱式轉換成long類型
1 int i=927; //聲明一個整形變量i並初始化為927 2 long j=i; //隱式轉換成long型
2、顯示轉換
顯示轉換也可以稱為強制轉換,需要在代碼中明確地聲明要轉換的類型。如果要在不存在的隱式轉換的類型之間轉換,就需要使用顯示轉換。
源類型
目 標 類 型
sbyte
byte、ushort、uint、ulong 或 char
byte
Sbyte 或 char
short
sbyte、byte、ushort、uint、ulong 或 char
ushort
sbyte、byte、short 或 char
int
sbyte、byte、short、ushort、uint、ulong 或 char
uint
sbyte、byte、short、ushort、int 或 char
long
sbyte、byte、short、ushort、int、uint、ulong 或 char
ulong
sbyte、byte、short、ushort、int、uint、long 或 char
char
sbyte、byte 或 short
float
sbyte、byte、short、ushort、int、uint、long、ulong、char 或 decimal
double
sbyte、byte、short、ushort、int、uint、long、ulong、char、float 或 decimal
decimal
sbyte、byte、short、ushort、int、uint、long、ulong、char、float 或 double
顯式轉換包含所有隱式轉換和顯式轉換,因此總是可以使用強制轉換表達式從任何數值類型轉換為任何其他的數值類型。
創建控制台應用程序,將double類型的x進行顯示類型轉換
1 static void Main(string [] age) 2 { 3 double x=19810927.0112; //建立double類型變量x 4 int y=(int)x; //顯式轉換成變量類型Y 5 Console.WriteLine(y); //輸出整形變量y 6 Coneole.ReadLine(); 7 }
也可以通過Convert關鍵字來進行顯式類型轉換;
創建控制台應用程序,通過Convert關鍵字進行顯式類型轉換。
1 double x=19810927.0112; //建立double類型變量x 2 int y=Convert.ToInt32(x); //通過Convert關鍵字轉換 3 Console.WriteLine(y); //輸出整形變量y 4 Console.ReadLine();
3、裝箱和拆箱
將值類型轉換為引用類型的過程叫做裝箱,相反,將引用類型轉換為值類型的過程叫做拆箱。
裝箱: