C#中的枚舉和結(jié)構(gòu)體用法解讀
枚舉
枚舉的聲明
用enum關(guān)鍵字修飾,加枚舉名
enum 枚舉名
{
值1,
值2,
值3,
````
}什么時候使用枚舉
在確定值的數(shù)量和值的時候使用枚舉,規(guī)范程序的開發(fā)
枚舉的賦值
枚舉名 變量名=枚舉名.值; Day nowDay = Day.星期一;
結(jié)構(gòu)體
結(jié)構(gòu)體的聲明 用struct關(guān)鍵字修飾,加結(jié)構(gòu)體名
結(jié)構(gòu)體的使用
結(jié)構(gòu)體中可以存儲不同類型的數(shù)據(jù),一般都是每個個體共同擁有一些屬性時使用結(jié)構(gòu)體
struct Student
{
變量類型 變量名;
變量類型 變量名;
}結(jié)構(gòu)體中的方法
- <1>如果方法是靜態(tài)的那么不能使用結(jié)構(gòu)體中非靜態(tài)的屬性
- <2>如果方法是非靜態(tài)的那么可以使結(jié)構(gòu)體中的靜態(tài)和非靜態(tài)的屬性
- <3>調(diào)用靜態(tài)方法需要用 "結(jié)構(gòu)體名.方法名" 來調(diào)用,非靜態(tài)方法直接用變量名調(diào)用
- <4>調(diào)用靜態(tài)屬性需要用 "結(jié)構(gòu)體名.屬性名" 來調(diào)用,非靜態(tài)屬性直接用變量名調(diào)用
代碼示例:
using System;
using System.Reflection;
namespace 第十章枚舉和結(jié)構(gòu)體
{
#region 枚舉
//枚舉的聲明 用enum關(guān)鍵字修飾,加枚舉名
//枚舉類型中默認(rèn)存儲的是int類型的,并且后面的值總是前一個值加一;
enum Day : int //枚舉名后面可以加上限制,但是限制的類型只能是整形 int ,long ,short 等;
{
星期一 =0,
星期二 =1, //枚舉中的值可以通過等號改變
星期三,
星期四,
星期五,
星期六,
星期日
}
#endregion
#region 結(jié)構(gòu)體
//結(jié)構(gòu)體的聲明 用struct關(guān)鍵字修飾,加結(jié)構(gòu)體名
//結(jié)構(gòu)體中可以存儲不同類型的數(shù)據(jù),一般都是
struct Student
{
public string name;
public Xingb xingbie; //結(jié)構(gòu)體可以和枚舉連用
public int age;
public string banji;
public bool youden;
}
enum Xingb
{
男,
女
}
#endregion
class Program
{
#region 結(jié)構(gòu)體中的方法
//定義一個結(jié)構(gòu)體
struct Teacher
{
public static string name;
public int age;
//非靜態(tài)方法可以使用靜態(tài)的屬性
public void Jieshao()
{
Console.WriteLine("你好,我是:"+name+"我今年"+age);
}
//靜態(tài)方法方法中不能使用非靜態(tài)的屬性
public static void Kecheng()
{
Console.WriteLine("我教你們語文課程"+name);
}
}
#endregion
static void Main(string[] args)
{
#region 枚舉
//小飛經(jīng)常出去旅游,但是每次出去對日期總是很糾結(jié),
//用使用枚舉幫小飛隨機(jī)選擇出去旅游的日子
Random _ran = new Random();
//因?yàn)槊杜e時從0開始,后面是前面數(shù)字加1,所以取值為 0到7,但不包括7.
int _numDay = _ran.Next(0,7);
#region 枚舉與int類型的相互轉(zhuǎn)換
Day nowDay = Day.星期一;
//枚舉類型可以轉(zhuǎn)換成int類型
int num = (int)nowDay;
//因?yàn)槊杜e類型默認(rèn)是整數(shù)類型,并且第一個值從0開始,所以星期一轉(zhuǎn)換成int 類型值就是0
Console.WriteLine(num);
//int轉(zhuǎn)換為枚舉類型(在這我們用隨機(jī)數(shù)來確定小飛的出游時間)
Day _nowDay1 = (Day)_numDay; //int轉(zhuǎn)換枚舉時要注意枚舉中的值是否存在
//打印小飛出游的時間
Console.WriteLine(_nowDay1 );
#endregion
#region 枚舉類型與string類型之間的轉(zhuǎn)換
//將枚舉轉(zhuǎn)換成字符串
Day strDay = Day.星期三;
//枚舉可以使用.ToString();方法
string _strDay1 = strDay.ToString();
Console.WriteLine(_strDay1);
//將string類型轉(zhuǎn)換為枚舉
//在這我們用上面的隨機(jī)數(shù),先將隨機(jī)數(shù)轉(zhuǎn)換為string,方便學(xué)習(xí)string轉(zhuǎn)換為枚舉
string _strDay2 = _numDay.ToString();
//string中有個Parse方法可以將string轉(zhuǎn)換為枚舉
// 該方法需要兩個參數(shù),一個是類型,一個是string類型的變量
//我們需要獲取這個枚舉類型 這里使用 typeof(類型)方法獲取枚舉類型
//后面的代碼只是將類型轉(zhuǎn)換為枚舉,但是我們需要轉(zhuǎn)換為Day類型使用
//所以加了一個強(qiáng)轉(zhuǎn)
Day str3NowDay = (Day)Enum.Parse(typeof(Day),_strDay2);
//上面代碼中的字符串可以是枚舉中的字符串值 如"星期一",如果字符串是數(shù)字值,枚舉中沒有
//該數(shù)字值那么不會報(bào)錯,但是如果是 "星期一"這種類型的值,枚舉中沒有的話會報(bào)異常
//打印出的結(jié)果跟上述一樣
Console.WriteLine(str3NowDay);
#endregion
#endregion
#region 結(jié)構(gòu)體
//使用結(jié)構(gòu)體首先要聲明一個結(jié)構(gòu)體類型
Student stu1;
//為結(jié)構(gòu)體賦值,在結(jié)構(gòu)體外賦值結(jié)構(gòu)體中的變量必須是 Public(公開的)修飾的
stu1.name = "張三";
stu1.age = 16;
stu1.xingbie = Xingb.男;
stu1.banji = "六年級一班";
stu1.youden = false;
Student stu2;
stu2.name = "李紅";
stu2.age = 15;
stu2.xingbie = Xingb.女;
stu2.banji = "六年級一班";
stu2.youden = true;
//打印李紅的信息
Console.WriteLine("姓名:"+ stu2.name+"\n年齡:" +
""+ stu2.age+"\n性別:"+ stu2.xingbie+"\n優(yōu)等生:"
+ stu2.youden+"\n班級:"+ stu2.banji);
#region 結(jié)構(gòu)體中方法的使用
Teacher ter1;
//靜態(tài)屬性和靜態(tài)方法一樣都需要用結(jié)構(gòu)體名調(diào)用
Teacher.name = "楊雪";
//非靜態(tài)屬性和方法直接使用變量名調(diào)用
ter1.age = 21;
ter1.Jieshao();
Teacher.Kecheng();
#endregion
#endregion
}
}
}總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
C# MySQL 實(shí)現(xiàn)多層級聯(lián)數(shù)據(jù)遷移
本文主要介紹了C# MySQL 實(shí)現(xiàn)多層級聯(lián)數(shù)據(jù)遷移,包括ID映射、拓?fù)渑判蚩刂祈樞?、事?wù)處理、批量插入優(yōu)化性能,具有一定的參考價值,感興趣的可以了解一下2025-07-07
深入學(xué)習(xí)C#網(wǎng)絡(luò)編程之HTTP應(yīng)用編程(上)
這篇文章主要介紹了如何學(xué)習(xí)C#網(wǎng)絡(luò)編程之HTTP應(yīng)用編程的相關(guān)知識,文中講解的非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-06-06
C#使用DeepSeek?API實(shí)現(xiàn)自然語言處理,文本分類和情感分析
在C#中使用DeepSeek?API可以實(shí)現(xiàn)多種功能,例如自然語言處理、文本分類、情感分析等,本文主要為大家介紹了具體實(shí)現(xiàn)步驟,需要的可以了解下2025-02-02
C#實(shí)現(xiàn)DataTable轉(zhuǎn)TXT、CSV文件
這篇文章介紹了C#實(shí)現(xiàn)DataTable轉(zhuǎn)TXT、CSV文件的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04
C# 將字節(jié)流轉(zhuǎn)換為圖片的實(shí)例方法
C# 將字節(jié)流轉(zhuǎn)換為圖片的實(shí)例方法,需要的朋友可以參考一下2013-03-03

