Объедините классы, которые отличаются только вызовами асинхронных/синхронных методов.C#

Место общения программистов C#
Ответить
Anonymous
 Объедините классы, которые отличаются только вызовами асинхронных/синхронных методов.

Сообщение Anonymous »

Я хочу удалить дублирование кода, у меня есть базовый абстрактный класс A, определенный в отдельной сборке, и производные классы B, C (каждый в отдельной сборке), которые отличаются только вызовом синхронных или асинхронных версий методов. Я хочу переместить всю логику в базовый класс, чтобы убрать дублирование кода. Я пробовал добавить виртуальные методы в базовый класс для синхронизируемых и асинхронных версий (

Код: Выделить всё

Evaluate
и EvaluateAsync), но это не лучший выбор, поскольку они будут общедоступны и сбивают с толку клиентов, когда им позвонить.
Мои попытки :

Код: Выделить всё

public virtual Task EvaluateAsync()
{
return Task.FromResult(null);
}

public virtual object? Evaluate()
{
return null;
}
При этом оба метода будут доступны в синхронных и асинхронных сборках. Есть ли способ решить эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/787 ... thod-calls
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»