zoukankan      html  css  js  c++  java
  • EventHandler<TEventArgs>委托

     1 using System;
     2 
     3 namespace ConsoleApplication1
     4 {
     5     class Program
     6     {
     7         static void Main(string[] args)
     8         {
     9             Counter c = new Counter(new Random().Next(10));
    10             c.ThresholdReached += c_ThresholdReached;
    11 
    12             Console.WriteLine("press 'a' key to increase total");
    13             while (Console.ReadKey(true).KeyChar == 'a')
    14             {
    15                 Console.WriteLine("adding one");
    16                 c.Add(1);
    17             }
    18         }
    19 
    20         static void c_ThresholdReached(object sender, ThresholdReachedEventArgs e)
    21         {
    22             Console.WriteLine("The threshold of {0} was reached at {1}.", e.Threshold,  e.TimeReached);
    23             Environment.Exit(0);
    24         }
    25     }
    26 
    27     class Counter
    28     {
    29         private int threshold;
    30         private int total;
    31 
    32         public Counter(int passedThreshold)
    33         {
    34             threshold = passedThreshold;
    35         }
    36 
    37         public void Add(int x)
    38         {
    39             total += x;
    40             if (total >= threshold)
    41             {
    42                 ThresholdReachedEventArgs args = new ThresholdReachedEventArgs();
    43                 args.Threshold = threshold;
    44                 args.TimeReached = DateTime.Now;
    45                 OnThresholdReached(args);
    46             }
    47         }
    48 
    49         protected virtual void OnThresholdReached(ThresholdReachedEventArgs e)
    50         {
    51             EventHandler<ThresholdReachedEventArgs> handler = ThresholdReached;
    52             if (handler != null)
    53             {
    54                 handler(this, e);
    55             }
    56         }
    57 
    58         public event EventHandler<ThresholdReachedEventArgs> ThresholdReached;
    59     }
    60 
    61     public class ThresholdReachedEventArgs : EventArgs
    62     {
    63         public int Threshold { get; set; }
    64         public DateTime TimeReached { get; set; }
    65     }
    66 }
  • 相关阅读:
    台州 OJ 3847 Mowing the Lawn 线性DP 单调队列
    洛谷 OJ P1417 烹调方案 01背包
    快速幂取模
    台州 OJ 2649 More is better 并查集
    UVa 1640
    UVa 11971
    UVa 10900
    UVa 11346
    UVa 10288
    UVa 1639
  • 原文地址:https://www.cnblogs.com/ZeedLee/p/10571505.html
Copyright © 2011-2022 走看看