events - What does this line of C# code actually do? -
i'm trying understand block of code in application i've come across bit of c# don't understand.
in code below, code after "controller.progress +=" line do?
i've not seen syntax before , don't know constructs called, can't google find out syntax means or does. instance, values s , p? placeholders?
private void backgroundworker_dowork(object sender, doworkeventargs e) { using (var controller = new applicationdevicecontroller(e.argument simpledevicemodel)) { controller.progress += (s, p) => { (sender backgroundworker).reportprogress(p.percent); }; string html = controller.getandconvertlog(); e.result = html; } }
it looks it's attaching function event, don't understand syntax (or s , p are) , there's no useful intellsense on code.
it's lambda expression being assigned event handler.
s , p variables passed function. you're defining nameless function, receives 2 parameters. because c# knows controller.progress event expects method handler 2 parameters of types int , object, automatically assumes 2 variables of types.
you have defined
controller.progress += (int s, object p)=> { ... }
it's same if had method definition instead:
controller.progress += doreportprogress; .... public void doreportprogress(int percentage, object obj) { .... }
Comments
Post a Comment