Open johnterickson opened 2 years ago
This will not compile:
delegate void Foo(); void Call(Foo f) { f(); } void TestCall() { Call(() => { return true; } ); // CS8030 Anonymous function converted to a void returning delegate cannot return a value }
but this will:
delegate Task FooAsync(); Task CallAsync(FooAsync f) { return f(); } void TestCallAsync() { CallAsync(() => { return Task.FromResult(true); }); }
FWIW this does throw an error:
delegate Task FooAsync(); Task CallAsync(FooAsync f) { return f(); } void TestCallAsync() { CallAsync(async () => { await Task.Yield(); return true; }); //CS8031 Async lambda expression converted to a 'Task' returning delegate cannot return a value. Did you intend to return 'Task<T>'? }
This will not compile:
but this will:
FWIW this does throw an error: