Как правильно организовать обработку входящих обновлений?

Есть телеграм клиент на tdlib, у него есть класс UpdateHandler, который реализует интерфейс ClientResultHandler и его метод, OnResult, в который приходят обновления,(UpdateNewMessage, UpdateChatPosition и так далее), все они наследуют интерфейс Update, как правильно организовать их обработку, в документации приведен пример с использованием switch case, насколько это правильно?

private class UpdateHandler : Td.ClientResultHandler
{
    void Td.ClientResultHandler.OnResult(TdApi.BaseObject @object)
    {
        if (@object is TdApi.UpdateAuthorizationState)
        {
            OnAuthorizationStateUpdated((@object as TdApi.UpdateAuthorizationState).AuthorizationState);
        }

        else if (@object is UpdateNewMessage message)
        {
            GetChatById(message.Message.ChatId);
            if (message.Message.Content is MessageText text)
                Console.WriteLine("Text: " + text.Text.Text);
        }
        else if (@object is UpdateChatPosition position)
        {
            Console.WriteLine(position.ChatId);
        }
    }
}

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