首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用类截取委托调用

如何使用类截取委托调用
EN

Stack Overflow用户
提问于 2015-08-25 18:01:31
回答 3查看 343关注 0票数 2

基本上,我想归档的是截获对委托的调用的方法。我在考虑定义一个可以用于它的类。类似于:

代码语言:javascript
运行
复制
timer.Elapsed += new MyClass((sender, e)=> { /* do stuff */});

如何以通用的方式定义MyClass

我可以让Myclass继承自ElapsedEventHandler,但是它只能用于这个事件。我在考虑让MyClass继承自Action<object, EventArg>,因为您还可以编写

代码语言:javascript
运行
复制
timer.Elapsed += (sender, e) => { /* do stuff */ }

但我没有让它工作。有什么建议吗?

EN

Stack Overflow用户

发布于 2015-08-25 18:09:45

您不能创建将被委托的类,但是您可以从您的类创建一个委托。

考虑一个类:

代码语言:javascript
运行
复制
public class MyClass 
{
    public void OnTimerElapsed(object sender, EventArgs e)
    {
    }
}

现在将您的类方法连接到事件:

代码语言:javascript
运行
复制
var obj = new MyClass();
timer.Elapsed += obj.OnTimerElapsed;

您还可以断开它的连接:

代码语言:javascript
运行
复制
timer.Elapsed -= obj.OnTimerElapsed;

您应该阅读更多关于C#中的事件的内容,比如这里:https://msdn.microsoft.com/en-us/library/aa645739(v=vs.71).aspx

票数 3
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32201022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档