Так как С# Task является классом, вы, очевидно, не можете использовать Task<TDerived>
для Task<TBase>
.
Однако вы можете сделать:
public async Task<TBase> Run() {
return await MethodThatReturnsDerivedTask();
}
Есть ли статический метод задачи, который я могу вызвать, чтобы получить экземпляр Task<TDerived>
, который по существу просто указывает на основную задачу и отображает результат? Мне хотелось бы что-то вроде:
public Task<TBase> Run() {
return Task.FromDerived(MethodThatReturnsDerivedTask());
}
Существует ли такой метод? Есть ли накладные расходы для использования асинхронного метода исключительно для этой цели?