У меня есть два интерфейса:
interface ICommandAsync : ICommand
{
new Task Run(params string[] args);
}
и
interface ICommand
{
string Name { get; }
string Desc { get; }
void Run(params string[] args);
}
'CommandWeather' не реализует элемент интерфейса 'ICommand.Run (params string [])'.«CommandWeather.Run (строка params [])» не может реализовать «ICommand.Run (строка params [])», поскольку у него нет соответствующего возвращаемого типа «void».
Вот здесь CommandWeather
, или класс-нарушитель:
class CommandWeather : ICommandAsync
{
public async Task Run(params string[] args)
{
//...
}
}
У меня такой вопрос: как я могу сделать интерфейс, который может быть асинхронным?Мне нужно, чтобы методы имели одно и то же имя, так как они оба будут вызываться с Run()
, и только несколько реализаций ICommand
или ICommandAsync
действительно должны использовать async
.Это означает, что у меня есть зеленые линии для синхронного асинхронного метода.