Я хочу удалить дублирование кода, у меня есть базовый абстрактный класс A, определенный в отдельной сборке, и производные классы B, C (каждый в отдельной сборке), которые отличаются только вызовом синхронных или асинхронных версий методов. Я хочу переместить всю логику в базовый класс, чтобы убрать дублирование кода. Я пробовал добавить виртуальные методы в базовый класс для синхронизируемых и асинхронных версий (
и EvaluateAsync), но это не лучший выбор, поскольку они будут общедоступны и сбивают с толку клиентов, когда им позвонить.
Мои попытки :
Код: Выделить всё
public virtual Task EvaluateAsync()
{
return Task.FromResult(null);
}
public virtual object? Evaluate()
{
return null;
}
При этом оба метода будут доступны в синхронных и асинхронных сборках. Есть ли способ решить эту проблему?
Подробнее здесь:
https://stackoverflow.com/questions/787 ... thod-calls