我試圖理解應用程序中的代碼塊是什麼,但我遇到了一些C#我只是不明白。這行C#代碼實際上做了什麼?
在下面的代碼中,「controller.Progress + =」行後的代碼是幹什麼用的?
我以前沒見過這種語法,因爲我不知道構造函數的調用方式,我不能谷歌任何東西來找出這個語法的含義。例如,值s和p是什麼?他們是佔位符嗎?
private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
using (var controller = new ApplicationDeviceController(e.Argument as SimpleDeviceModel))
{
controller.Progress +=
(s, p) => { (sender as BackgroundWorker).ReportProgress(p.Percent); };
string html = controller.GetAndConvertLog();
e.Result = html;
}
}
它看起來像它的附加功能的事件,但我只是不明白的語法(或者是什麼S和P),並有該代碼沒有有用intellsense。
注意,由於'(發送方被作爲BackgroundWorker的)如果轉換失敗,並且將立即導致一個空引用異常,像這樣將寫它'將爲空更好地表達意圖(如果失敗則給出更有意義的異常):'{((BackgroundWorker)sender).ReportProgress(p.Percent); }' – 2013-05-14 14:29:17