事件 與 委託 Invoke() BeginInvoke()
阿新 • • 發佈:2018-11-27
總結: 1. 事件可以 用 +=
2. 委託 用 = 委託包括 事件委託
都要呼叫委託方法相應的方法才能呼叫執行
封裝一個方法,該方法不具有引數且不返回值。
C#複製
public delegate void Action();
繼承
Action
public delegate void ShowValue(); // 這個可以被下面的Action 替換掉,因為Action 就是一個委託型別
ShowValue showMethod = testName.DisplayToConsole;
showMethod(); // 呼叫委託方法
class Program { static void Main(string[] args) { Name testName = new Name("Hello"); testName.OnTest += testName.DisplayToConsole; // 這是事件 // Action showMethod = testName.DisplayToConsole; // showMethod(); or showMethod.Invoke(); //1.。 這是委託 testName.Init(); // 2. 如果去掉這句,則這個Init()方法裡的委託事件並沒有呼叫,則不會執行+= 右邊的函式 Console.Read(); } } public class Name { public event Action OnTest; private string instanceName; public Name(string name) { this.instanceName = name; } public void DisplayToConsole() { Console.WriteLine(this.instanceName); } public void Init() { OnTest(); } }