c# - How to make EndInvoke generic? -


in code raise events using begininvoke, because each event has different eventargs, code full of duplicate functions, like:

private void endasyncconnect(iasyncresult iar) {     var ar = (system.runtime.remoting.messaging.asyncresult)iar;     var invokedmethod = (eventhandler<infoargs>)ar.asyncdelegate;      invokedmethod.endinvoke(iar); }  private void endasyncreceived(iasyncresult iar) {     var ar = (system.runtime.remoting.messaging.asyncresult)iar;     var invokedmethod = (eventhandler<receivedargs>)ar.asyncdelegate;      invokedmethod.endinvoke(iar); } 

is there way make endasync function generic events?

if event delegate types eventhandler<t>, should work:

void completioncallback<t>(iasyncresult iar)     t : eventargs {     var ar = (system.runtime.remoting.messaging.asyncresult)iar;     var invokedmethod = (eventhandler<t>)ar.asyncdelegate;     invokedmethod.endinvoke(iar); } 

Popular posts from this blog

How to calculate SNR of signals in MATLAB? -

c# - Attempting to upload to FTP: System.Net.WebException: System error -

ios - UISlider customization: how to properly add shadow to custom knob image -