0

我收到一个错误,当我尝试为欢迎消息创建 DM 频道时,我收到错误:无法通过引用转换、装箱转换、拆箱转换、包装转换或空类型转换将类型转换为。

这是我的代码。

        {
            var channel = _client.GetDMChannelsAsync() as SocketDMChannel;
            await channel.SendMessageAsync("Welcome to Noice Discord!");
        }

在我的 handlecommandsasync 函数中,底部也有这个。 _client.UserJoined += AnnounceJoinedUser;

任何帮助都会很好,因为我真的被困在这里。

4

1 回答 1

0

首先,似乎您使用的是过时版本的库,我建议您更新。

其次,假设_client您的代码中的SocketGuildUser是您的UserJoined事件处理程序提供的(考虑给它一个更好的名称,并且在将来寻求帮助时,提供所有需要的代码),您不需要将它转换为任何东西并且你想等待它。
而且你不应该使用GetDMChannelsAsync.
(注意复数,也许你是偶然这样做的?去掉那个)

所以这就是你想要的结果(在更新版本的 Discord.NET 上)

var channel = await _client.GetDMChannelAsync();
await channel.SendMessageAsync("Welcome to Noice Discord!");

或者,如果您更改为库的更新版本,该方法将重命名为GetOrCreateDMChannelAsync.

于 2019-12-29T20:56:34.687 回答