W excellent answer about starting a timer immediately, mogłem zobaczyć następujący kod:(_) => DoWork(); W jaki sposób podkreślenie jest poprawne jako anonimowy parametr delegata?
timer.Elapsed += timer_Elapsed;
ThreadPool.QueueUserWorkItem((_) => DoWork());
...
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) {
DoWork();
}
void DoWork() {
// etc...
}
próbowałem to sam, i wpadłem na tej linii, gdzie myślałem, że była literówka w anonimowym budowy Delegat:
What?
|
V
ThreadPool.QueueUserWorkItem((_) => DoWork());
Która z ukrytych reguł sprawia, że podkreślenie "_" jest dopuszczalne jako nazwa parametru w anonimowym uczestniku?
Ta sama reguła, która powoduje, że pojedyncze podkreślenie jest dopuszczalne jako nazwa parametru w ogólnym przypadku? '_' jest poprawnym identyfikatorem w C#. –
Nie wiedziałem o tym i jestem bardzo zaskoczony ... Dzięki za wskazanie tego. – Larry
Chcę oznaczyć jako duplikat [this] (http://stackoverflow.com/questions/950616/what-characters-are-allowed-in-c-sharp-class-name), ale nie chcę Mjolnir to, więc oto mój głos. – Rawling