1. 泛型 泛指某種類型。 1、使用參數形式定義 2、使用時傳入具體類型 3、編譯時檢查類型安全 4、邏輯上是多個不同類型 泛型與非泛型之間的區別 性能高:可以避免裝箱和拆箱操作 類型安全 :在進行類型轉換的時候不會拋出異常 代碼重用:定義一次,用許多種不同類型實例化 代碼擴展性好 ArrayLis ...
泛指某種類型。
1、使用參數形式定義 2、使用時傳入具體類型 3、編譯時檢查類型安全 4、邏輯上是多個不同類型
泛型與非泛型之間的區別
-
性能高:可以避免裝箱和拆箱操作
-
類型安全 :在進行類型轉換的時候不會拋出異常
-
代碼重用:定義一次,用許多種不同類型實例化
-
代碼擴展性好
ArrayList arr = new ArrayList(); arr.Add(1); arr.Add("a"); arr.Add(2); foreach (int a in arr) { System.Console.WriteLine(a); // 編譯階段不會報錯,但運行時報錯 }
使用List 泛型集合解決問題:
List<int> list = new List<int>(); list.Add(1); list.Add(2); // list.Add("a"); // 編譯階段就能發現問題,因為此時已經指定為Int類型,不能再亂加數據了 foreach (int a in arr) { System.Console.WriteLine(a); }
2. 枚舉
枚舉指的是一組固定的常量集合。例如生活中的性別,星期,季節等等,這些都是固定常量值組成。聲明一個枚舉的關鍵是enum
, System.Enum
類型是所有枚舉類型的抽象基類 .
enum Sex { Man, Women }
枚舉的作用:
提高程式的可讀性。
反例
int sex =1; if(sex==0){ Console.WriteLine("男"); }else if(sex==1){ Console.WriteLine("女"); }else{ Console.WriteLine("未知"); }
時間久了,或許連自己都不知道 0,1,2到底是什麼意思了。
正例:
enum Sex { Man, Women } static void Main(){ Sex sex = Sex.Man; switch(sex) { case Sex.Man: Console.WriteLine("男"); break; case Sex.Women: Console.WriteLine("女"); break; default: Console.WriteLine("未知"); break; } }
枚舉類型轉換
其實每一個枚舉值,都會對應一個整形值,預設從0開始,如上述的,Man =0, Women=1. 也可以為枚舉指定整形值,如:
enum Sex { Man=10, // 預設是0 Women // 如果上述指定了10,則Woman=11,如果沒有指定值為10,則為1 }
枚舉值預設為依次遞增,直到再次遇到指定的值的枚舉值,如:
enum OrderState { WaitPay=10, // 預設是0 Pay, // 11 waitSend, // 12 WaitReceive=30, // 30 WaitComment, // 31 Finish, // 32 Cancel // 33 }
整形與枚舉相互轉換
// 枚舉轉換為整形 OrderState orderState = OrderState.Finish; int state = (int) orderState; Console.WriteLine(state); //32 // 整形轉換為枚舉 int pay = 11; OrderState state2 = (OrderState) pay; Console.WriteLine(state2); // Pay
字元串與枚舉相互轉換
// 枚舉轉換為字元串 OrderState state = OrderState.WaitComment; string strState = state.ToString(); Console.WriteLine(strState); // WaitComment // 字元串轉換為枚舉 string waitSend = "WaitSend"; OrderState state2 = (OrderState)Enum.Parse(typeof(OrderState), waitSend);
3 .Net 6.0 頂級語句
在創建.Net Core 6.0 項目時,會發現,Program.cs
文件中 把最基本的Main方法給去掉了,這其實是 C#9.0 語法中的頂級語句
語法
應用程式中只有一個文件可使用頂級語句。 如果編譯器在多個源文件中找到頂級語句,則是錯誤的。 如果將頂級語句與聲明的程式入口點方法(通常為 Main
方法)結合使用,也會出現錯誤。 從某種意義上講,可認為一個文件包含通常位於 Program
類的 Main
方法中的語句。
4. 綜合練習
學生類:學號(int),姓名(string),性別(char), 年齡(int)
*****************歡迎來到任我行碼農場,學生管理系統********************
---- 1. 展示所有學生信息
---- 2. 添加一個學生信息
---- 3. 刪除一個學生信息
---- 4. 按學號修改學生信息
---- 5. 按學號查找
---- 6. 退出系統
請輸入(1-6):
按要求實現上述功能。
視頻教程:
譽尚學教育_譽尚學教育騰訊課堂官網 (qq.com)
或者:C# 最強入門編程(.Net 學習系列開山巨作)_嗶哩嗶哩_bilibili