您的位置:首页 > 编程语言 > C#

C# 事件访问器(Event Accessor)

2016-01-21 22:00 381 查看
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication委托为什么没有返回值
{
class Program
{
static void Main(string[] args)
{
Publishser p = new Publishser();
p.NumberChanged -= Subscriber1.OnNumberChanged;
p.NumberChanged += Subscriber2.OnNumberChanged;
p.NumberChanged += Subscriber3.OnNumberChanged;
p.DoSomething();
}
}

//定义委托
public delegate string GeneralEventHandler();

//定义事件发布者
public class Publishser
{
//声明一个委托变量
private GeneralEventHandler numberChanged;

//事件访问器的定义
public event GeneralEventHandler NumberChanged
{
add
{
numberChanged = value;
}
remove
{
numberChanged = value;
}
}

public void DoSomething()
{
if (numberChanged != null)
{
string rtn = numberChanged();
Console.WriteLine(rtn);
}
}
}

//定义事件订阅者
public class Subscriber1
{
public static string OnNumberChanged()
{
return "Subscriber1";
}
}
public class Subscriber2
{
public static string OnNumberChanged()
{
return "Subscriber2";
}
}
public class Subscriber3
{
public static string OnNumberChanged()
{
return "Subscriber3";
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: