惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
N
Netflix TechBlog - Medium
Google Online Security Blog
Google Online Security Blog
月光博客
月光博客
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
V
V2EX
腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
M
MIT News - Artificial intelligence
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
aimingoo的专栏
aimingoo的专栏
博客园 - 三生石上(FineUI控件)
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
MongoDB | Blog
MongoDB | Blog
H
Help Net Security
The Cloudflare Blog
Blog — PlanetScale
Blog — PlanetScale
F
Full Disclosure
G
Google Developers Blog
罗磊的独立博客
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Y
Y Combinator Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
A
About on SuperTechFans
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
有赞技术团队
有赞技术团队
GbyAI
GbyAI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
The Register - Security
The Register - Security
U
Unit 42
D
Docker
Martin Fowler
Martin Fowler
L
LINUX DO - 热门话题
NISL@THU
NISL@THU
阮一峰的网络日志
阮一峰的网络日志
C
Cybersecurity and Infrastructure Security Agency CISA
博客园_首页
Google DeepMind News
Google DeepMind News

博客园 - 拼命郎

Gated Check-in function in TeamBuild 2010 关于asp.net2.0里的Multiview和View控件的显示与隐藏实现的问题 急死我了!!!vs 2005 单元测试 总是报错 读书笔记- programing .net components(o'Reilly) 由一个关于数据库操作类的写法而想到的。。。。 在sqlserver建表时尽量不要用特殊的字符,如[、]、回车等 关于嵌套事务的一种处理方法 - 拼命郎 关于.net 控件的html 属性的几点技巧 一个关于内容换行的问题 - 拼命郎 jbuilder 中不能调试的一种情况 几点关于java的代码常用规范 最近项目中一些关于代码编写管理的一些思考 几点asp.net的小收获 IsDbNull 方法的用法 两个概念:结构化和层次化的含义 一个char类型的字符赋给一个string对象时不会发生装箱操作 浅析.Net下的AppDomain编程 (转载) 属性(Attributs)笔记 操作符重载笔记
用事件和代理实现的一个闹钟实例
拼命郎 · 2006-01-12 · via 博客园 - 拼命郎

网速慢又不能插入代码,只好粘贴了
using System;

namespace Clock
{
public delegate void GetupNow();
 class home
 {
  /// <summary>
  /// 闹钟实现
  /// </summary>
  
  [STAThread]
  static void Main(string[] args)
  {
   Clock clock=new Clock();
   Man man=new Man();

   GetupNow getupNow;

   getupNow=new GetupNow(man.Getup);
   clock.getup+=new GetupNow(man.Getup);

   clock.Settime();
   clock.Ifring();
   Console.ReadLine(); 
   
  }
 }
 class Clock
 {
  public System.DateTime time;
  public event GetupNow getup;

  public void Settime()
  {
   int x=0;
   Console.WriteLine(System.DateTime.Now.ToShortDateString()+"请输入你要在多少毫秒后被叫醒");
   time=new DateTime();
   time=System.DateTime.Now;
   x=int.Parse(Console.ReadLine().Trim());
   time=time.AddSeconds(x);   
  }
  public void Ifring()
  {
    do
    {
     System.Threading.Thread.Sleep(1000); //休眠1000毫秒
     Console.WriteLine(time.Second-System.DateTime.Now.Second);//输出当前时间与响铃时间的差值
    }
    while
     (time.Second>System.DateTime.Now.Second);
    Ring();
    getup();
  }
  private void Ring()
  {
   Console.WriteLine("时间到");
  }

 }
 class Man
 {
    public void Getup()
  {
   Console.WriteLine("我起床了·!·!");
  }
 }
}
简单地说就是定义要通过事件调用的函数的代理,然后再将此代理注册到其他类中的事件上,在合适的时间调用。