一、簡介
列舉是一組命名整型常量;列舉型別是使用 enum 關鍵字宣告的;C# 列舉是值型別,
二、語法
列舉的語法:
public enum 列舉名
{
值1,
值2,
值3,
............
}
或者
enum 列舉名
{
值1,
值2,
值3,
............
}
public:訪問修飾符,公共的公開的,哪都可以訪問;
enum:關鍵字,宣告列舉的關鍵字;
列舉名:要符合Pascal命名規范;
將列舉宣告到命名空間下面,類的外面,表示這個命名空間下,所以類都可以訪問這個列舉;
三、型別轉換
我們可以將一個列舉型別的變數跟int型別和string型別互相轉換:
1.列舉型別默認是跟int型別相互兼容的,所以可以通過強制型別轉換的語法互相轉換,當轉換一個列舉中沒有的值的時候,不會拋例外,而是直接將數字顯示出來,
2.如果將列舉型別轉換成string型別,則直接呼叫ToString().
3.如果將字串轉換成列舉型別則需要下面這樣一行代碼:
(要轉換的列舉型別)Enum.Parse(typeof(要轉換的列舉型別),"要轉換的字串");
如果轉換的字串是數字,則就算列舉中沒有,也會不會拋例外,
如果轉換的字串是文本,如果列舉中沒有,則會拋出例外,
備注:所有的型別都能夠轉換成string型別,呼叫ToString(),
四、實體
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _03列舉的練習
{
public enum Sesons
{
春,
夏,
秋,
冬
}
public enum QQState
{
OnLine,
OffLine,
Leave,
Busy,
QMe
}
class Program
{
static void Main(string[] args)
{
Sesons s = Sesons.春;
QQState state = QQState.OnLine;
}
}
}
五、型別轉換實體
1.將列舉型別強轉成int型別
namespace _04列舉和int以及string型別之間的轉換
{
public enum QQState
{
OnLine=1,
OffLine,
Leave,
Busy,
QMe
}
class Program
{
static void Main(string[] args)
{
#region 將列舉型別強轉成int型別
QQState state = QQState.OnLine;
//列舉型別默認可以跟int型別互相轉換 列舉型別跟int型別是兼容的
int n = (int)state;
Console.WriteLine(n);
Console.WriteLine((int)QQState.OffLine);
Console.WriteLine((int)QQState.Leave);
Console.WriteLine((int)QQState.Busy);
Console.WriteLine((int)QQState.QMe);
Console.ReadKey();
#endregion
}
}
}
2.將int型別強轉為列舉型別
namespace _04列舉和int以及string型別之間的轉換
{
public enum QQState
{
OnLine=1,
OffLine,
Leave,
Busy,
QMe
}
class Program
{
static void Main(string[] args)
{
#region 將int型別強轉為列舉型別
int n1 = 3;
QQState state = (QQState)n1;
Console.WriteLine(state);
Console.ReadKey();
#endregion
}
}
}
3.將列舉型別轉換成字串型別
amespace _04列舉和int以及string型別之間的轉換
{
public enum QQState
{
OnLine=1,
OffLine,
Leave,
Busy,
QMe
}
class Program
{
static void Main(string[] args)
{
#region 將列舉型別轉換成字串型別
//所有的型別都能夠轉換成string型別
int n1 = 10;
// double n1 = 3.14;
decimal n1 = 5000m;
string s1= n1.ToString();
Console.WriteLine(s1);
QQState state = QQState.OnLine;
string s = state.ToString();
Console.WriteLine(s);
Console.ReadKey();
#endregion
}
}
}
4.將字串轉換成列舉型別
amespace _04列舉和int以及string型別之間的轉換
{
public enum QQState
{
OnLine=1,
OffLine,
Leave,
Busy,
QMe
}
class Program
{
static void Main(string[] args)
{
//列舉練習
//提示用戶選擇一個在線狀態,我們接受,并將用戶的輸入轉換成列舉型別,
//再次列印到控制臺中
Console.WriteLine("請選擇您的qq在線狀態 1--OnLine 2--OffLine 3--Leave 4--Busy 5--QMe");
string input = Console.ReadLine();
switch (input)
{
case "1": QQState s1 = (QQState)Enum.Parse(typeof(QQState), input);
Console.WriteLine("您選擇的在線狀態是{0}",s1);
break;
case "2": QQState s2 = (QQState)Enum.Parse(typeof(QQState), input);
Console.WriteLine("您選擇的在線狀態是{0}",s2);
break;
case "3": QQState s3 = (QQState)Enum.Parse(typeof(QQState), input);
Console.WriteLine("您選擇的在線狀態是{0}",s3);
break;
case "4": QQState s4 = (QQState)Enum.Parse(typeof(QQState), input);
Console.WriteLine("您選擇的在線狀態是{0}", s4);
break;
case "5": QQState s5 = (QQState)Enum.Parse(typeof(QQState), input);
Console.WriteLine("您選擇的在線狀態是{0}", s5);
break;
}
Console.ReadKey();
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/110564.html
標籤:C#
下一篇:檔案操作及編碼格式
