首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > 控制台模拟移动响应客户请求过程
【标  题】:控制台模拟移动响应客户请求过程
【关键字】:
【来  源】:http://blog.csdn.net/lyz84331/archive/2006/11/08/1374517.aspx

控制台模拟移动响应客户请求过程

using System;
using System.Windows.Forms;

//控制台模拟移动响应客户请求过程
namespace Test
{
 //定义请求类型
 public enum RequestType
 {
  AddMoney,
  SelectMoney,
  News
 };
 //通知发生了什么类型请求
 public class UserRequestEventArgs:EventArgs
 {
  private RequestType request;

  //构造函数
  public UserRequestEventArgs(RequestType request)
  {
   this.request=request;
  }
  //设置RequestType变量的只读属性
  public RequestType Request
  {
   get
   {
    return this.request;
   }
  }
 }
 //控制台接受用户输入类
 public class UserInput
 {
  public delegate void UserRequest(object sender,UserRequestEventArgs e);
  public event UserRequest OnUserRequest;

  //循环接受用户输入
  public void Run()
  {
   while(true)
   {
    Console.WriteLine("Select what you want to do");
    Console.WriteLine("A:Add money");
    Console.WriteLine("B:Select How many money left");
    Console.WriteLine("C:News");

    string UserInputString=Console.ReadLine();
    char UserInputChar=(UserInputString=="")?""[0]:char.ToUpper(UserInputString[0]);

    switch (UserInputChar)
    {
     case 'A':
      OnUserRequest(this,new UserRequestEventArgs(RequestType.AddMoney));
      break;
     case 'B':
      OnUserRequest(this,new UserRequestEventArgs(RequestType.SelectMoney));
      break;
     case 'C':
      OnUserRequest(this,new UserRequestEventArgs(RequestType.News));
      break;
     default:
      break;
    }
   }
  }
 }
 //反馈给客户端消息内容的类1
 public class MessageDisplay
 {
  public MessageDisplay(UserInput uInput)
  {
   uInput.OnUserRequest += new UserInput.UserRequest(uInput_OnUserRequest);
  }

  private void uInput_OnUserRequest(object sender, UserRequestEventArgs e)
  {
   switch(e.Request)
   {
    case RequestType.AddMoney:
     Console.WriteLine("Custom want add money");
     break;
    case RequestType.SelectMoney:
     Console.WriteLine("Custom want Select how many money left");
     break;
    case RequestType.News:
     Console.WriteLine("News");
     break;
    default:
     break;
   }
  }
 }
 //反馈给客户端消息内容的类2(以此类推,可以为反馈的客户这个事件上加上无穷的动作)
 public class MessageDisplay2
 {
  public MessageDisplay2(UserInput uInput)
  {
   uInput.OnUserRequest +=new UserInput.UserRequest(uInput_OnUserRequest);
  }

  private void uInput_OnUserRequest(object sender, UserRequestEventArgs e)
  {
   if(e.Request==RequestType.News)
   {
    MessageBox.Show("News start...");
   }
  }
 }
 //测试类
 class Test
 {
  [STAThread]
  static void Main(string[] args)
  {
   UserInput uinput=new UserInput();
   MessageDisplay mdisplay=new MessageDisplay(uinput);
   MessageDisplay2 mdisplay2=new MessageDisplay2(uinput);
   uinput.Run();
  }
 }
}
 

.NET三层经典架构PetShop3.0分析之数据访问层:【上一篇】
一次编辑 GridView 的所有行:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • ASP实现语音分时问候
  • 通过Oracle直接访问MSSQL
  • Log4j的介绍
  • ASP教程:第十七篇 ADO 存取数据库时如何分页显示
  • C++运算符重载赋值运算符(转)
  • RegCleaner使用教程
  • 提升JSP应用程序的七大绝招
  • VB.NET中的面向对象编程特征
  • SSA SRN42500
  • Fedora6下更新Eclipse的Pydev功能的最后设置
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.