我正在创建一个新类,以便使System.Timers.Timer类更好地满足我的需要。我创建我的新班级就像这样..。
using System.Timers;
class BtElapsedEventArgs : ElapsedEventArgs
{
//My extras
}
namespace MyGreatNewTimer
{
class BetterTimer : Timer
{
}
}现在,我只想替换在其他地方触发的Elapsed事件。
private void TestTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
//Timer has elapsed
}我想让它产生以下..。
private void TestTimer_Elapsed(object sender, BtElapsedEventArgs e)
{
//Timer has elapsed
}我该怎么做呢?
发布于 2016-02-28 17:47:28
如果我正确理解了您的问题,您可以按照如何:发布符合.NET框架指南的事件(C#编程指南)创建自己的Elapsed事件,并隐藏原始的Epalsed事件:
namespace MyGreatNewTimer
{
class BtElapsedEventArgs : EventArgs
{
public DateTime SignalTime { get; set; }
//Some other properties
}
class BetterTimer : Timer
{
new public event EventHandler<BtElapsedEventArgs> Elapsed;
public BetterTimer()
{
base.Elapsed += BetterTimer_Elapsed;
}
void BetterTimer_Elapsed(object sender, ElapsedEventArgs e)
{
var handler = this.Elapsed;
if(handler!=null)
{
var bte = new BtElapsedEventArgs() { SignalTime = e.SignalTime};
//Set other properties, then fire the event
handler(sender, bte);
}
}
}
}https://stackoverflow.com/questions/35685344
复制相似问题