检查事件处理程序中的事件参数 C#
check event argument in event handler c#
我想跟踪在事件订阅的参数中传递的参数,以便我可以在 select/narrow 之后调用。
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
是否是该类型的正确名称 - 它 看起来 应该代表单个标签而不是一组标签标签,考虑到您的使用方式。)
我想跟踪在事件订阅的参数中传递的参数,以便我可以在 select/narrow 之后调用。
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
是否是该类型的正确名称 - 它 看起来 应该代表单个标签而不是一组标签标签,考虑到您的使用方式。)