Возвращает false из метода асинхронной задачи

#c#

#c#

Вопрос:

Я использую метод асинхронной задачи. Есть ли какой-либо способ вернуть false из этого метода. Если нет, то как я могу справиться с этим сценарием?

 public static async Task Share(MemoryStream streamToEmail)
{
    if(streamToEmail.Length < 10000000)
    {
        await SendEmails();
    }
    else
    {
         //return false;
    }             
}
 

Комментарии:

1. Измените свой метод, чтобы возвращать Task<bool>

2. Вы можете изменить возвращаемый тип на Task<bool> и возвращать true / false внутри каждой ветви, но вместо этого вам, вероятно, следует создать исключение.

3. Взгляните на класс Task<TResult> : docs.microsoft.com/en-us/dotnet/api /…

Ответ №1:

Нет, если только вы не планируете также возвращать некоторое логическое значение в if-ветке. Если вы это сделаете, вы могли бы сделать это следующим образом:

 public static async Task<bool> Share(MemoryStream streamToEmail)
{
    if(streamToEmail.Length < 10000000)
    {
        await SendEmails();
        return true;
    }
    else
    {
         return false;
    }          
}