C#委託與事件

Windbell_233發表於2020-10-12

C#委託與事件
相關知識:
C#委託_基本語法
事件的由來
委託也是—種型別,根據物件導向程式設計的特性,通常會把—個型別的變數封裝到類的內部,並把其設定成private的,然後通過屬性來訪問該變數。
所以在實際程式設計時委託型別也會定義 在類裡面使用event關鍵字來修飾委託變數。

其本質上是委託變數的屬性.

理解事件
1.事件提供了更好的封裝性,還能起到限制作用。
2.事件的訂閱和退閱,是通過“+=”和“-=”操作來實現的。

事件例項1:

public delegate void Greeting(string name);
public class GreetingManager
{
	public event Greeting MakeGreet;
	public void GreetPeople(string name)
	{
		MakeGreet (name);
	}
}
public static void EnglishGreet(string name)
{
	Console.WriteLine ( "good morning!~" + name) ;
}
public static void ChineseGreet(string name)
{
	Console.writeLine ("早上好!~" +name) ;
}
public static void Main (string[] args)
{
	GreetingManager greetmanager = new GreetingManager ();
	greetmanager.MakeGreet += EnglishGreet;
	greetmanager.MakeGreet_+=ChineseGreet;
	greetmanager.GreetPeople ("肖浩");
}
//output:
//good morning!~肖浩
//早上好!~肖浩

事件例項2:
C#設計模式_觀察者模式_熱水器

相關文章