c#:事件的使用
代码演示
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EventTest1111
{
internal class Program
{
static void Main(string[] args)
{
Test test = new Test();
sstv sstv = new sstv();
test.EventHandlerTest += sstv.eventTest; //这一步最开始需要绑定事件,将+=后面的sstv.eventTest这个就是事件触发后要执行的方法。
//最直观的还是看这里+= ,+号前面的是发布器,后面是订阅器
int i = 0;
while (true)
{
i++;
if (i == 10000)
{
test.chufaevent("ahahhaha");
}
}
Console.ReadLine();
}
}
//这个就是发布的
public class Test
{
public delegate void EventHander(string Test);
public event EventHander EventHandlerTest;
public void chufaevent(string tt)
{
if (EventHandlerTest!=null)
{
EventHandlerTest(tt); //这一步触发事件,一般都是 事件名();
}
}
}
//这个就是订阅的
public class sstv
{
//这是事件触发后执行的方法,会把上面的参数tt传到下面的test中,然后打印出来结果。
//注意:该方法的这个部分void和参数部分(比如参数的个数和参数的类型要对照上面delegate的不然事件就无法绑定这个方法)
public void eventTest(string test)
{
Console.WriteLine(test);
}
}
}