开发者

Event Arguments Best Practice and Updating Issues

开发者 https://www.devze.com 2023-02-19 01:50 出处:网络
Can I update only selected variables within a custom EventArgs class or do I need to update all of them at the same time?For instance when this method is called:

Can I update only selected variables within a custom EventArgs class or do I need to update all of them at the same time? For instance when this method is called:

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

< AMENDED; it's been pointed the above is incorrect syntax for updating EventArgs using a Method call.. ie... the 'new' keyword is a new EventArg not updating one... which begs the question.. how do you update EventArgs via a method call either full or in part (only some of the variables not all of them)... >

can I just leave out the variables I don't want to update ..' TraderEventArgs(,,var3) ??

or will that leave the TraderEventArgs.var1 & TraderEventArgs.var2 empty??

This is a question pertaining to whether or not I need to have multiple EventArgs classes created or whether I can store all (sometimes unrelated) non-pertinent data together in one custom EventArgs class.

CORRECTION: I am开发者_如何学Go asking whether or not it's feasible to store sometime unrelated data together in one event argument class which may or may not be updated at the same time as other non-related data... I may not have been clear about that previously...


If you mean this:

new TraderEventArgs(,,var3) 

that's simply invalid syntax.

Note that you're declaring a new variable here (t) and creating a new object - there is no "existing" object to modify, as far as we can see. You talk about updating variables, but that's not going to happen through a new call.

EDIT: Now that we can see the TraderEventArgs class, it's reasonably clear that you can't update it at all - both the Price and Shares properties are read-only (they have getters but no setters). There's no way of modifying the price and shares of an existing instance. Now you could potentially change the class of course (if it's yours to change)... or you may be able to just create a new instance and tell whatever currently has a reference to the old instance to use the new one instead. We still can't really tell without more information about what's going on.

From the linked post, I think you're missing the point of event args in general: they're usually provided by whatever raises the event. If the event raising code (e.g. the click code in a Button type) doesn't know anything about your custom event args, then you can't just crowbar them in.

0

精彩评论

暂无评论...
验证码 换一张
取 消