using System.Threading.Tasks;
public abstract class BaseClass
public abstract Task MetodoAssincrono();
public abstract Task<int> MetodoAssincronoComRetorno();
public class DerivedClass : BaseClass
public override async Task MetodoAssincrono()
Console.WriteLine("MetodoAssincrono");
await Task.CompletedTask;
public override async Task<int> MetodoAssincronoComRetorno()
Console.WriteLine("MetodoAssincronoComRetorno");
return await Task.FromResult<int>(5);
public static void Main()
var c = new DerivedClass();
c.MetodoAssincrono().Wait();
Console.WriteLine(c.MetodoAssincronoComRetorno().Result);