Инициализация переменной через is not. Как работает?
Сабж
Есть такой код
async Task HandleUpdateAsync(ITelegramBotClient botClient, Update update, CancellationToken cancellationToken)
{
// Only process Message updates: https://core.telegram.org/bots/api#message
if (update.Message is not { } message)
return;
// Only process text messages
if (message.Text is not { } messageText)
return;
var chatId = message.Chat.Id;
Console.WriteLine($"Received a '{messageText}' message in chat {chatId}.");
// Echo received message text
Message sentMessage = await botClient.SendTextMessageAsync(
chatId: chatId,
text: "You said:\n" + messageText,
cancellationToken: cancellationToken);
}
Остальной код тут https://telegrambots.github.io/book/1/example-bot.html
Вопрос в том как работает строчка if (update.Message is not { } message)
Я понимаю эту строчку так: Поле update.Message имеет тип Message. Мы проверяет соответствует ли присланное сообщение этому типу.
Далее мы проверяет само сообщения на string if (message.Text is not { } messageText) если это не текст то выходим из метода.
Если я сделаю вот так (message.Text is not string messageText) все продолжит работать. Где можно почитать про этот сахар? И как это называется?
Я имею в виду вот это { } messageText