Насколько корректно возвращать 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; }
}