Ну хотя бы
public enum Unit : byte { Value = 0 }(хотя кардинальность его будет 256, а формально нужна единица)
Подробно решаем и разбираем подобные задачки и как нормально делай, в Last Principles Framework.
c#
// Без Unit — два разных метода
Task DoSomethingAsync();
Task<int> GetValueAsync();
// С Unit — единый интерфейс
Task<Unit> DoSomethingAsync();
Task<int> GetValueAsync();
// Можно писать обобщённый код:
async Task<T> WithLogging<T>(Func<Task<T>> operation)
{
Console.WriteLine("Start");
var result = await operation();
Console.WriteLine("End");
return result;
}
// Вызов для "void" операции:
await WithLogging(async () =>
{
await DoSomethingAsync();
return Unit.Value;
});