Home
R
Cancel

[C# 筆記] 異步 async、await

什麼是異步 異步(Asynchrony)就是「非同步」 在中文裡,「同步」給人起來的感覺就是「同時進行的事情」,例如「挖土和蓋樓兩件事情同步進行中」,表示的是我們在挖土的同時也在蓋大樓。然而在碼農的世界裡,「同步」的意思其實是「序貫執行」,說人話就是「一個接一個地有序執行」。例如你寫了5件事情在任務清單上,你必須得做完第一件再做第二件,順序不可跳躍。 這帶來一個問題:當上一個任務沒有完...

[C# 筆記] Thread 執行緒

Thread 執行緒 執行無參數方法 static void Test() { Console.WriteLine("Start"); Thread.Sleep(1000); Console.WriteLine("Completed"); } static void Main(string[] args) { Thread t = new Thread(Te...

[C# 筆記] 觀察者設計模式-貓捉老鼠

第一步:使用委託 被觀察者:貓(只有一個) 觀察者:老鼠(有很多個) 如果應用在程式開發中,例如:在遊戲中,會有個「開始」按鈕,當按下按鈕後,會有很多的場景、音樂、去進行一個資源的加載、其他加載,「開始按鈕」就是「被觀察者」,開始按鈕的狀態變化就是「是否被點擊」,當這個狀態被改變了,它被點擊了,就要通知「觀察者」(資源管理器、音樂理理器、場景管理器…)去做一些事情,像是場景切換,音樂...

[C# 筆記] 工具人下樓問題(Delegate+Event)

假設一群人在宿舍,有人要下樓去買午餐,其他人也跟著請他買,並寫在清單上。 (可以發佈一個事件,大家都可以去訂閱。) 訂閱:訂閱這個事件,當工具人下樓的時候,就可以順便幫他們做一些事(買飯/東西、拿快遞、其他 發佈:發佈下樓的事件 事件:下樓事件 Step1: 先定義兩個類別:工具人、懶人 internal class ToolMan //工具人 { publi...

[C# 筆記] Delegate(委託)、Lambda、Event(事件)

委託的定義和使用 1 什麼是委託? 如果我們要把方法當參數來傳遞的話,就要用到委託,簡單來說,委託是一個類型,這個類型可以賦值一個方法的引用。 一般我們變數都是儲存數據,像是string, int, float, double… 委託變數可以把方法複製過來,通過變數去調用這個方法 聲明委託 在C#中使用一個”類別”有兩個階段:定義、聲明,「定義」就是告訴編譯器這個”類別”由...

[C# 筆記] 使用泛型和索引器來實現一個自己的集合類List

創建構造函數和Capacity Count屬性 定義一個泛型類別 public class MyList public class MyList<T> //定義一個泛型類別 { private T[] array;//定義數組,來儲存我們的元素 private int count = 0;//當前添加的元素的個數 //構造函數(有參數) pub...

[WebAPI] Swagger擴展版本控制(不符合Restful風格)

Swagger擴展版本控制(不符合Restful風格), 勿試… Step1. 新增一個ApiVersions.cs檔,使用列舉(enum)定義版本的名稱 namespace NET6Demo.WebApi.Utility.Swagger { public enum ApiVersions { V1, V2, V3 }...

C# Notes - Part Ⅲ

字串 string string 可以利用類似索引器[index]的語法,去訪問字串中的某個字符 //可以利用類似索引器的語法,去訪問字串中的某個字符 string s = "www.google.com"; Console.WriteLine(s[3]); //. for (int i = 0; i < s.Length; i++) { Console.WriteLine(s...

C# Notes - Part Ⅱ

異常處理(捕捉異常) try-catch-finally [範例] 讓用戶輸入兩個數字,輸入非整數類型,處理該異常,並讓用戶重新輸入,輸出這個兩個數的和 int num1 = 0, num2 = 0; Console.WriteLine("請輸入第一個數:"); while (true) { //使用死循環,讓用戶可以重新輸入 try { num1 = Convert...

C# Notes - Part I

數學運算符-自加(++)自減(- -) ++不管是放在操作數的前面或後面,都是讓操作數+1 int num = 8; num++; //8 ++num; //8 如果++和- -是放在運算式裡: ++如果放在操作數的後面,會先賦值運算,再自加 int res = num++; //res:8, num:9 ++如果放在操作數的前面,會先自加,再進行運算賦值 int res = +...