I have one service lets say,
public interface ISomeService
{
    Task<bool> DoSomeExpensiveCheckAsync(string parameter);
}
And I have this class to consume the service. It just needs to do some simple null checks and then return the service response back.
public class SomeServiceConsumer
{
    private readonly ISomeService _serviceClient;
    public SomeServiceConsumer(ISomeService serviceClient)
    {
        _serviceClient = serviceClient;
    }
    public async Task<bool> DoSomething1Async(string someParameter)
    {
        if (string.IsNullOrWhiteSpace(someParameter))
        {
            return false;
        }
        return await _serviceClient.DoSomeExpensiveCheckAsync(someParameter);
    }
    //No async or await keywords   
    public Task<bool> DoSomething2Async(string someParameter)
    {
        if (string.IsNullOrWhiteSpace(someParameter))
        {
            return Task.FromResult(false);
        }
        return _serviceClient.DoSomeExpensiveCheckAsync(someParameter);
    }
}
Should I do DoSomething1Async or DoSomething2Async?
According to this answer, I should not wrap with an unnecessary await but then I have to use Task.FromResult(false) for shortcircuiting as in DoSomething2Async
But according to this answer there are cases with try/catch and using statements where I actually should await before returning.
Am I correct in saying then, that
If I have to use
try/catchorusingthen I shouldawaitOtherwise do not
awaitif you are only going to return. And useTask.FromResultfor short circuiting
I like DoSomething1Async more, and want to do that everywhere if someone says it doesnt matter :).