如何解决检查事件处理程序中的事件参数 c#
我想跟踪在事件订阅中传入参数的参数,以便在选择/缩小我的调用之后。
public List<Tags> _toSpecificTagSubscribed = new List<Tags>();
private event Action<Tags> _onSpecificTagEvent;
public event Action<Tags> OnSpecificTagEvent {
add {
_onSpecificTagCollision += value;
if (!_toSpecificTagSubscribed.Contains(<TagArgumentValue>))
_toSpecificTagSubscribed.Add(<TagArgumentValue>);
}
remove { _onSpecificTagEvent -= value; }
}
}
参见<TagArgumentValue>
。这是在订阅的事件本身中传递的,所以我想知道如何访问它。可能是 value.<TagArgumentValue>
,表示传递给事件的参数值。
这可能吗?怎么样?
解决方法
如果我理解正确,您会将“引发事件时提供的信息”与“事件处理程序中提供的信息”混淆。
Action<Tags>
可以使用它提供的 Tags
做任何事情。它可能选择只响应某些标签,但这只是任意代码。
如果您想拥有一种仅订阅特定标签的方式,您需要将其作为订阅信息的一部分,例如
public void AddTagHandler(Tags tag,Action<Tags> handler)
您可以潜在地使用 Dictionary<Tags,Action<Tags>>
来跟踪为任何给定标记订阅的处理程序。
(您可能还想检查 Tags
是否是该类型的正确名称 - 它看起来应该代表单个标签而不是标签集合,考虑到您的方式正在使用它。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。