一个C#高级编程中的事件 DEMO 实例,C#高级编程中的例子,讲的是事件DEMO,一起来看看吧。一个C#高级编程中的事件 DEMO 实例,C#高级编程中的例子,讲的是事件DEMO,一起来看看吧。
using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { class Program { /// /// 发生一个事件:用户选择了一个选项 /// 响应是1:用户得到想要的结果 /// 2:老板得到是否有用户在看他的信息 /// /// 即:多点委托[显示结果,提示老板] /// /// static void Main(string[] args) { //UserInputMonitor 的成员userInputRequest 事件 UserInputMonitor uim = new UserInputMonitor(); //为userInputRequest绑定2个方法 UserView uv = new UserView(uim); person p = new person(uim); //run方法里面会提示用户来促发userInputRequest 事件 uim.Run(); } } } using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { class UserInputMonitor { public delegate void userInputRequest(object send,UserEventArgs e); public event userInputRequest onUserInputRequest; public void Run() { //不同的促发情况 //UserEventArgs 带上了用户选择的信息 while (true) { System.Console.WriteLine("input p:[look personal ]"); System.Console.WriteLine("input c:[look company]"); System.Console.WriteLine("input e:[exit ]"); string input = System.Console.ReadLine(); if (input.ToLower() == "p") onUserInputRequest(this, new UserEventArgs(RequestType.Personal)); else if (input.ToLower() == "c") onUserInputRequest(this, new UserEventArgs(RequestType.Company)); else if (input.ToLower() == "e") return; else continue; } } } } using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { enum RequestType{ Personal, Company } /// /// 携带了用户选择信息的EventArgs /// class UserEventArgs : EventArgs { private RequestType reqType; public RequestType GetRequestType { get { return this.reqType; } } public UserEventArgs(RequestType t) { this.reqType = t; } } } using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { /// /// 绑定一个事件 /// class UserView { public UserView(UserInputMonitor uim) { uim.onUserInputRequest += new UserInputMonitor.userInputRequest(uim_onUserInputRequest); } protected void uim_onUserInputRequest(object send, UserEventArgs e) { if (e.GetRequestType == RequestType.Company) System.Console.WriteLine("company is best!!"); if(e.GetRequestType == RequestType.Personal) System.Console.WriteLine("he is chinese!!"); } } } using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { /// /// 绑定一个事件 /// class person { public person(UserInputMonitor uim) { uim.onUserInputRequest += new UserInputMonitor.userInputRequest(uim_onUserInputRequest); } protected void uim_onUserInputRequest(object send, UserEventArgs e) { if (e.GetRequestType == RequestType.Personal) System.Console.WriteLine("somebody miss u!!"); } } } |
文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面