using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;
namespace 事件处理
{
class Program
{
static int 计数器 = 0;
static string 显示字符串 = "这个字符串会按一定时间间隔出现一个字母。";
static void Main(string[] args)
{
Timer 我的定时器 = new Timer(100);
//我的定时器.Elapsed += new ElapsedEventHandler(写字符);
我的定时器.Elapsed += 写字符;
我的定时器.Start();
Console.ReadKey();
}
static void 写字符(object 来源, ElapsedEventArgs e)
{ Console.Write(显示字符串[计数器++ % 显示字符串.Length]); }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;
namespace 定义事件
{
public delegate void MessageHandler(string 消息文本);
class 连接
{
public event MessageHandler 消息到达;
private Timer 调定时器;
public 连接()
{
调定时器 = new Timer(100);
调定时器.Elapsed += new ElapsedEventHandler(检查邮件);
}
public void 接连()
{
调定时器.Start();
}
public void 断开()
{
调定时器.Stop();
}
private static Random 随机 = new Random();
private void 检查邮件(object 来源, ElapsedEventArgs e)
{
Console.WriteLine("检查新邮件");
if (随机.Next(9) == 0 && 消息到达 != null) 消息到达("妈妈打招呼");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 定义事件
{
class 显示
{
public void 显示信息(string 消息)
{
Console.WriteLine("消息到达:{0}", 消息);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;
namespace 定义事件
{
class Program
{
static void Main(string[] args)
{
连接 新连接 = new 连接();
显示 到显示 = new 显示();
新连接.消息到达 += new MessageHandler(到显示.显示信息);
新连接.接连();
Console.ReadKey();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 多用途事件处理
{
public class 显示
{
public void 显示信息(连接 来源, MessageArrivedEventArgs e)
{
Console.WriteLine("信息到达: {0}", 来源.名称);
Console.WriteLine("信息文本: {0}", e.读信息);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Timers;
namespace 多用途事件处理
{
public delegate void MessageHandler(连接 来源, MessageArrivedEventArgs e);
//public delegate void MessageHandler(object 来源, EventArgs e);
public class 连接
{
public event MessageHandler 消息到达;
public string 名称 { get; set; }
private Timer 调定时器;
public 连接()
{
调定时器 = new Timer(100);
调定时器.Elapsed += (source, e) => Console.WriteLine("{0}毫秒之后调用事件处理程序", (source as Timer).Interval);
调定时器.Elapsed += new ElapsedEventHandler(检查邮件);
}
public void 接连()
{
调定时器.Start();
}
public void 断开()
{
调定时器.Stop();
}
private static Random 随机 = new Random();
private void 检查邮件(object source, ElapsedEventArgs e)
{
Console.WriteLine("检查新邮件.");
if ((随机.Next(9) == 0) && (消息到达 != null))
{
消息到达(this, new MessageArrivedEventArgs("妈妈打招呼!"));
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 多用途事件处理
{
public class MessageArrivedEventArgs : EventArgs
{
private string 信息;
public string 读信息
{
get
{
return 信息;
}
}
public MessageArrivedEventArgs()
{
信息 = "没有发送消息.";
}
public MessageArrivedEventArgs(string 新信息)
{
信息 = 新信息;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 多用途事件处理
{
class Program
{
static void Main(string[] args)
{
连接 接连1 = new 连接();
接连1.名称 = "首先连接.";
连接 接连2 = new 连接();
接连2.名称 = "第二个连接.";
连接 接连3 = new 连接();
接连3.名称 = "第3个连接.";
显示 到显示 = new 显示();
接连1.消息到达 += new MessageHandler(到显示.显示信息);
接连2.消息到达 += new MessageHandler(到显示.显示信息);
接连3.消息到达 += delegate(连接 来源, MessageArrivedEventArgs e)/*匿名方法*/
{
Console.WriteLine("信息到达: {0}", 来源.名称);
Console.WriteLine("信息文本: {0}", e.读信息);
};
接连1.接连();
接连2.接连();
接连3.接连();
Console.ReadKey();
}
}
}