Это пример кода от Microsoft, объясняющий, как работают цепочки задач:
using System;
using System.Threading.Tasks;
1. public class Example
2. {
3. public static async Task Main()
4. {
5. // Execute the antecedent.
6. Task<DayOfWeek> taskA = Task.Run( () => DateTime.Today.DayOfWeek );
7. // Execute the continuation when the antecedent finishes.
8. await taskA.ContinueWith
9. ( antecedent => Console.WriteLine("Today is {0}.", antecedent.Result) );
10. }
11. }
В строке # 9 ContinueWith
передается лямбда-выражение.
Мой вопрос: как компилятор узнает, что такое antecedent
и где его взять? Я имею в виду, что taskA
имеет свойство Result
и может быть передано в качестве аргумента, но компилятор просто go обходит код и, когда он видит первое, что может быть передано, выбирает его?