Следующий код создает синтаксическую ошибку:
class Foo
{
public Action a = () => { };
}
void doSomething()
{
var foo = new Foo();
(foo.a)(); // error CS1525: Invalid expression term ')'
}
Однако следующие альтернативы работают:
foo.a(); // works
Action a = foo.a; a(); // works
Почему это так? (foo.a)
является Action
; почему я не могу назвать это?