Delegate 委派 為什麼要使用委派? 將一個方法作為參數傳遞給另一個方法 委派概念 聲明一個委派類型 委派所指向的函數必須跟委具有相同的簽名 匿名函數 沒有名字的函數 練習:使用委派求數組的最大值 練習:使用委派求任意數組的最大值 泛型委派 多播委派 Lamda 表達式 使用委派來實現窗體傳值
[C# 筆記] TCP & UDP 協議
協議(TCP & UDP) TCP:三次握手、服務器、安全穩定、但是效率低 UPD:快速、效率高,但是不穩定,容易發生數據丟失 TCP優於UDP的好處是什麼? TCP比較安全穩定,一般不會發生數據丟失, 因為TCP在傳輸過程中,我們要經歷這樣三個過程: 叫做三次握手 TCP協議要求我們必須要有一個服務器, 這個請求一定是客戶端發給服務端的請求, 而我們服務器不能去客...
[C# 筆記] Socket
Socket 兩個人在兩個房間裡打電話的圖 人通過「電話」可以通信 程序通過「Socket」來通信 我和你打電話,電話=>規定好的語言 電腦和電腦進行聯繫=>協議 相關概念 用於描述 IP、Port 用戶端Client => 服務端Server 負責監聽的Socket 創建一個負責通信的Socket Port (埠/端口)...
[C# 筆記] 搖獎機
思路: 先實作讓搖獎機能夠不停的轉(使用死循環while(true)) 加bool判斷搖獎機的轉動狀態,同一個button去做切換(開始&停止) 步驟: 先寫一個方法,用死循環while(true)讓它能不停轉 方法裡需要用到隨機數 開一個新的執行緒 Thread去執行這個方法 (Thread要設背景線程) 程序加載時,取消「跨線程的檢查」 But...
[C# 筆記][WinForm] 播放音樂
//儲存音樂文件的全路徑的泛型集合 List<string> listSongs = new List<string>(); private void btnOpen_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.Title = "請...
[C# 筆記] Process & Thread review
Process 進程 using System.Diagnostics; //取得當前程序正在運行的進程 Process.GetProcesses(); //通過進程去打開指定的應用程式 Process.Start("calc"); Process.Start("iexplore", "https://goole.com"); //通過進程打開你指定的文件 ProcessStartInf...
[C# 筆記] Thread 執行緒(線程)
Thread 執行緒(線程) 當點擊按鈕時,會去做很複雜的事(跑一萬次) 調試 > 輸出 不是真死,是假死 單Thread 執行緒的問題 模擬一個很複雜的方法,造成視窗卡死 當點擊按鈕時,會去做很複雜的事(跑一萬次) 調試 > 輸出 private void button1_Click(object sender, EventArgs e) { Test(); ...
[C# 筆記] Process 類別 (程序/進程)
Process 程序(進程) 每一個應用程式都可以看成進程 我們可以把電腦中每一個運行的應用程式都當作是一個進程。 而一個進程又是由多個線程組成的。 取得當前程序中所有正在運行的進程 //取得當前程序中所有正在運行的進程 Process[] prcs = Process.GetProcesses(); foreach (var item in prcs) { //item.Ki...
[C# 筆記][WinForm] ListBox 實現點擊播放音樂
//用來儲存音樂全路徑 List<string> listSongs = new List<string>(); private void Form1_Load(object sender, EventArgs e) { //取得指定文件夾中的所有音樂的全路徑 string[] path = Directory.GetFiles(@"C:\Users\...
[C# 筆記][WinForm] ListBox 實現點擊更換圖片
//用來儲存圖片全路徑 List<string> list = new List<string>(); private void Form1_Load(object sender, EventArgs e) { //取得指定文件夾中的所有圖片的全路徑 string[] path = Directory.GetFiles(@"C:\Users\rival...