public event Action<string, int, int> Changed;
如果Action
有两个或多个相同类型的参数,在大多数情况下,这不是可以理解的丑陋。它仍然要写
<summary> T2: old value, T3: new value </summary>
,
或包裹在struct
.
当为这个事件生成一个方法时,它会出现:
private void OnChange (string arg1, int arg2, int arg3)
{
throw new NotImplementedException();
}
是否有任何选项可以指定参数的名称Action
?
例如,您可以拒绝预定义的
Action<>
,使用自定义委托:创建处理程序时,Studio 将提供必要的名称:
Action
只是一个有一堆泛型重载的委托。还有另一个代表 -EventHandler
。对于事件处理程序,习惯上使用第二个。但这当然并不一定意味着应该这样做。例如,如果您根本不需要它
sender
,那么您可以使用。是否将其
EventArgs
用作数据传输的基类也是个人问题。什么是
EventArgs
-这是什么。在 Unity 中获得足够多的内容是否有意义 - 我认为没有。它在常规桌面应用程序中继承自它,以便让其他开发人员有机会通过开发文化更轻松地阅读代码。
事实证明,您的问题没有很酷的解决方案,您必须将参数包装在 in
struct
、或 inTuple
、或 inclass
或 in 中record
(但我不知道这些条目是否可以在 Unity 中使用)。因此选项
元组很方便,因为它们可以即时组装、拆卸和重新组装。并将收集到的元组存储在一个变量中。在这里,我建议您根据自己的喜好从实际的角度进行更详细的研究。
或者。
MyArgsType
例如在哪里不幸的是,我不知道解决这个难题的其他选择。