c# - Generic EventArgs for built-in types -
posters @ are eventarg classes needed have generics , does .net have built-in eventargs<t>? advising against generic eventargs, @ least that's feeling get.
is justified use when need 1 of build-in types? in specific case i'm reading stream on tcp, , when data received, subscribers notified.
public event eventhandler<eventargs<string>> data_received = delegate { }; ... while (!reader.endofstream) { if ((data = reader.readline()) != "") { this.data_received(this, new eventargs<string>(data)); } } or perhaps event isn't best way pass data subscribers?
short answer: depends.
you can consider eventargs<t> class tuple<t> passing , returing data to/from method. in simple cases , internal usage tuple<t> appropriate more complex cases or public surface more appropriate use separate type.
with eventargs<t> have more or less same dilema. internal usage ok use type, public api lead maintainance nightmare.
in particular case seems ok use eventargs<t> @ first glance, if later you'll decide add additional information endpoint? in case can use eventargs<t, u> (like tuple<t, u>) or can switch custom eventargs class. in both case you'll break clients , if 1 client of code - ok, if not...
bottom line, internal stuff ok use eventargs, public surface suggest use custom event args.
p.s. general naming convention events camelcase, , in particular case means datareceived more appropriate name event.
Comments
Post a Comment