Насколько корректно возвращать null из метода?

Давно мучает один вопрос, пишу бота на С# и в некоторых методах возвращаю null насколько это корректно? Пример

    public async Task<Message> CommandPlaceAnOrderAsync(TelegramBotClient botClient, int userId, int messageId, string callbackQueryId, string inputCommand)
    {
        CommandsDataBaseShop dataBase = new CommandsDataBaseShop();
        await dataBase.AddOrUpdateLastCommandAsync(userId, "PlaceAnOrder");
        int id = int.Parse(InputCommandParsing(inputCommand)[1]);
        if (await dataBase.CheckingForProductStockAsync(id))
        {
            await botClient.AnswerCallbackQueryAsync(callbackQueryId, "? Выберите способ доставки");
            return await botClient.EditMessageReplyMarkupAsync(userId, messageId, replyMarkup: new Keyboard().DeliveryMethodKeyboard(id));//Возвращает сообщение
        }
        else
        {
            await botClient.AnswerCallbackQueryAsync(callbackQueryId, "?‍♀️ Извините, но товар закончился"); // Метод ничего не возвращает.
            return null;
        }
    }

Ответы (1 шт):

Автор решения: Игорь

null нужно возвращать только на методах очень низкого уровня.

Когда речь идет методах высокого уровня, сервисах, контроллах и т.п., то лучше использовать осознанный класс ответа. Что-то вроде:

public class ServiceResult<T>{
   public bool IsValid { get;set; }
   public string Message { get;set; }
   public T Result { get;set; }
} 
→ Ссылка