using System;
public class Program
{
private static void AmbiguousAsyncOverload() {
Foo(() => Bar()); // This is OK
Foo(Bar); // Error, ambiguous overload
}
private static void Foo(Func<int> func) {
func();
private static void Foo(Func<string> func) {
private static int Bar() {
return 4;
public static void Main()
AmbiguousAsyncOverload();