事件参数最佳实践和更新问题

时间:2011-03-23 17:12:19

标签: c# .net eventargs

我是否只能更新自定义EventArgs类中的选定变量,还是需要同时更新所有变量?例如,当调用此方法时:

 public void updateEvents(string var1, string var2, string var3)
 {
     // reference a custom EventArg class
     TraderEventArgs t = new TraderEventArgs(var1, var2, var3);
 }

<修正;有人指出上面是使用Method调用更新EventArgs的错误语法..即...'new'关键字是一个新的EventArg没有更新一个...这引出了一个问题..你如何通过一个方法更新EventArgs完全或部分调用(只有部分变量不是全部)...>

我可以省略我不想更新的变量吗。'TraderEventArgs(,, var3)??

或将离开TraderEventArgs.var1& TraderEventArgs.var2空??

这是一个关于我是否需要创建多个EventArgs类或者是否可以在一个自定义EventArgs类中将所有(有时不相关的)非相关数据存储在一起的问题。

更正:我在询问是否可以将一些不相关的数据存储在一个事件参数类中,这可能会或可能不会与其他非相关数据同时更新...我可能不太清楚关于那个... ...

1 个答案:

答案 0 :(得分:1)

如果你的意思是:

new TraderEventArgs(,,var3) 

这只是无效的语法。

请注意,您在此处声明了一个新变量(t)并创建了一个对象 - 没有“现有”对象需要修改,据我们所知。您谈论更新变量,但这不会通过new调用发生。

编辑:现在我们可以看到TraderEventArgs类,但很明显你根本无法更新它 - PriceShares属性都是只读的(他们有吸气剂,但没有制定者)。无法修改现有实例的价格和份额。现在你可以改变当然的类(如果你的改变了)......或者你可以能够创建一个新实例并告诉当前有什么引用 old 实例使用新的实例。如果没有关于正在发生的事情的更多信息,我们仍然无法确定。

从链接的帖子中,我认为你总是忽略了事件的意义:他们通常是通过任何提升事件来提供的。如果事件引发代码(例如Button类型中的单击代码)对您的自定义事件args一无所知,那么您不能只是将它们撬开。