Невозможно использовать функции Telegram Bot API, если пространство имен и класс функции в параметре метода - PullRequest
0 голосов
/ 02 августа 2020

У меня есть этот код

public static void info()
{
    TGKrybot.SendTextMessageAsync(Telegram.Bot.Args.MessageEventArgs.Message.Chat.Id, "example");
}

и этот код

public static void mybot_OnMessage(object sender, Telegram.Bot.Args.MessageEventArgs msg)

В первом коде я не могу использовать Telegram.Bot.Args.MessageEventArgs.Message.Chat.Id (и, конечно, другой код API телеграмм-ботов), хотя ive поставьте using static Telegram.Bot.Args.MessageEventArgs в начале, проблема в том, что ему нужно, чтобы MessageEventArgs.Message был объектом, но когда я создаю для него объект, он говорит, что нет свойства, метода или поля Message в MessageEventArgs, ive также попытался создать объект для Telegram.Bot.Args.MessageEventArgs.Message, и это не работает, потому что объекту нужны параметры, которых у него нет. И я не могу сказать это в параметрах 1-го кода, как я сделал для 2-го кода, потому что мне нужен 1-й код как функция. Как я могу это исправить, я также не понимаю, как установка Telegram.Bot.Args.MessageEventsArgs в параметрах моего метода позволяет мне использовать код API телеграммы.

1 Ответ

0 голосов
/ 02 августа 2020

Ваш метод должен иметь параметры, если вы хотите сделать это в методе mybot_OnMessage, вы можете использовать параметр msg, но в вашем случае вы должны позволить info иметь параметр Message и передать его в mybot_OnMessage to info, поэтому он должен быть таким:

public static void mybot_OnMessage(object sender, Telegram.Bot.Args.MessageEventArgs msg)
{
    info(msg.Message);
}

public static void info(dynamic m)
{
    TGKrybot.SendTextMessageAsync(m.Chat.Id, "example");
}

Или вы можете использовать его с классом stati c, который имеет поле Message, но это не хорошо , вот так:

public static class SharedValues
{
    public static Message Message;
}

public static class Program
{
    public static void mybot_OnMessage(object sender, Telegram.Bot.Args.MessageEventArgs msg)
    {
        SharedValues.Message = msg.Message;
    }
}

public static class AnothorProject
{
    public static void info()
    {
        // Use shared values class
        TGKrybot.SendTextMessageAsync(SharedValues.Message.Chat.Id, "example")
    }
}
...