public delegate void ShowValue();
ShowValue showMethod = testName.DisplayToConsole;
showMethod(); // 调用委托方法
using System;
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(); 与下面的等价
OnTest.Invoke();
}
}