永发信息网

用C#的事件处理和委托做“自动发送生日快乐“这一事件,怎么做啊?快啊,就今晚之前。可以多给分。谢谢了

答案:3  悬赏:60  手机版
解决时间 2021-04-07 12:43
  • 提问者网友:我的未来我做主
  • 2021-04-06 13:07
用C#的事件处理和委托做“自动发送生日快乐“这一事件,怎么做啊?快啊,就今晚之前。可以多给分。谢谢了
最佳答案
  • 五星知识达人网友:患得患失的劫
  • 2021-04-06 14:26
namespace Test // 有注释希望你能看懂
{
class BirthdayViewer
{
public string name;
//声明委托和事件
public delegate void BirthdayEventHandler(object sender, BirthdayEventArgs e);
public event BirthdayEventHandler BirthdayEvent;

public BirthdayViewer(string name)
{
this.name = name;
}
public void WaitMyBirthDay()
{
//DateTime birthday = new DateTime(2011,12,31,12,12,12); //用你的生日初始化
DateTime birthday = DateTime.Now.AddSeconds(10);//测试用的
Console.WriteLine("Your brithday is:{0}", birthday, ToString());
while (DateTime.Now < birthday) //等待生日的到来
{
Console.WriteLine("Time is:{0}", DateTime.Now.ToString());
Thread.Sleep(1000);
}
if (null != this)
{
BirthdayEventArgs e = new BirthdayEventArgs(DateTime.Now); //初始化参数
BirthdayEvent(this, e); //触发事件
}
}
}
//自定义参数类,继承了EventArgs
class BirthdayEventArgs:EventArgs
{
public DateTime now ;
public BirthdayEventArgs(DateTime dt)
{
now = dt;
}
}

class BirthDayAlert
{
public static void Say(object sender, BirthdayEventArgs e)
{
BirthdayViewer bv = (BirthdayViewer)sender;
Console.WriteLine("{0},happy birthday to you. Time:{1}", bv.name, e.now.ToString());
}
}
class Program
{
static void Main(string[] args)
{
BirthdayViewer bv = new BirthdayViewer("Mike");
bv.BirthdayEvent += BirthDayAlert.Say; //注册事件
bv.WaitMyBirthDay(); //开始等待生日的到来
Console.Read();
}
}
}
全部回答
  • 1楼网友:撞了怀
  • 2021-04-06 16:06
//定义一个委托 public delegate void 委托名(); //注意此时委托示包含在任何类里. public class class1 { //在本类中定义一个事件基于 "委托名" 的事件 event 委托名 事件名; //构造函数 public class1() { 事件名 += 事件调用的方法; } /// <summary> /// 事件所绑定的方法 /// </summary> void 事件调用的方法() { console.writeline("我是事件调用的方法"); } //调用 void 调用() { 事件名(); } }
  • 2楼网友:有你哪都是故乡
  • 2021-04-06 15:20
这并不是一件难事。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯