zoukankan      html  css  js  c++  java
  • c# 事件 测试

    KeyEventArg.cs

    using System;

    namespace EventTest
    {
    internal class KeyEventArg : EventArgs
    {
    private char keyChar;
    public KeyEventArg(char k)
    : base()
    {
    this.keyChar = k;
    }

    public char KeyChar
    {
    get
    {
    return keyChar;
    }
    }
    }

    internal class KeyInput
    {
    public delegate void KeyDonwHandle(object sender, KeyEventArg e);
    public event KeyDonwHandle KeyDown;
    public void run()
    {
    bool finish = false;
    do
    {
    Console.WriteLine("请输入:");
    string s = Console.ReadLine();
    char c = (s == "") ? ' ' : char.ToUpper(s[0]);
    switch (c)
    {
    case 'X':
    finish = true;
    break;
    default:
    KeyEventArg key = new KeyEventArg(c);
    KeyDown(this, key);
    break;

    }

    } while (!finish);
    }
    }


    internal class ReceiveEvent
    {
    public ReceiveEvent(KeyInput moin)
    {
    moin.KeyDown += new KeyInput.KeyDonwHandle(moin_KeyDown);
    }

    void moin_KeyDown(object sender, KeyEventArg e)
    {
    Console.WriteLine("事件被除法");
    Console.WriteLine(e.KeyChar);
    }

    }


    }

    实例化:

    using System;

    namespace EventTest
    {
    class Program
    {
    static void Main(string[] args)
    {

    KeyInput k = new KeyInput();

    ReceiveEvent r = new ReceiveEvent(k);
    k.run();
    }
    }
    }

  • 相关阅读:
    异常、中断、陷阱
    BigDecimal
    事务
    jsp的九大内置对象
    timer和ScheduledThreadPoolExecutor
    关于Python的导入覆盖解决办法
    RTTI
    Golang不会自动把slice转换成interface{}类型的slice
    Python中下划线的5种含义
    Python如何合并两个字典
  • 原文地址:https://www.cnblogs.com/lanyue52011/p/2674246.html
Copyright © 2011-2022 走看看