Как я могу проверить, есть ли у IUser никнейм? - PullRequest
0 голосов
/ 03 апреля 2020
if (user.IsBot == false && (user.Nickname.ToString().Equals(buffer) || user.Username.ToString().Equals(buffer)))
{
    await ReplyAsync(Context.User.Mention + message[new Random().Next(5)] + user.Mention);
}

Если у пользователя нет псевдонима, он говорит, что ссылка на объект не установлена ​​для экземпляра объекта.

1 Ответ

1 голос
/ 03 апреля 2020

Вы должны сначала проверить, является ли Nickname пустым. В этом случае я бы предложил что-то вроде:

if (user.Nickname != null && user.IsBot == false)
{
    if (user.Nickname.ToString().Equals(buffer) || user.Username.ToString().Equals(buffer)))
    {
        await ReplyAsync(Context.User.Mention + message[new Random().Next(5)] + user.Mention);
    }
}

Или даже:

if (user != null)
{
    if (user.Nickname != null && user.IsBot == false)
    {
        if (user.Nickname.ToString().Equals(buffer) || user.Username.ToString().Equals(buffer)))
        {
            await ReplyAsync(Context.User.Mention + message[new Random().Next(5)] + user.Mention);
        }
    }
}

, если пользователь также может быть нулевым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...