这就是我想出的代码
var roleMuted = ctx.Guild.GetRole(role id);
var userId = ctx.Message.MentionedUsers.First().Id;
DiscordMember member = ctx.Guild.GetMemberAsync(user); //exception here
await member.GrantRoleAsync(roleMuted);
它给了我一个例外
CS0029 无法将类型隐式转换
"System.Threading.Tasks.Task< DSharpPlus.Entities.DiscordMember>"
为"DSharpPlus.Entities.DiscordMember"
正如您在此处看到的那样-我在该行中的意图是创建一个类变量DiscordMember
并将其设置DiscordMember
为由返回 的变量ctx.Guild.GetMemberAsync()
,但由于某种原因,Visual Studio
告诉我DiscordMember
返回的变量GetMemberAsync()
与DiscordMember
我尝试的不同创建,以后使用 for .GrantRoleAsync()
,这让我很困惑。
edit1** 我必须补充一点,如果我替换DiscordMember
为该var
行
var member = ctx.Guild.GetMemberAsync(user);
然后我没有给我一个关于转换失败的异常,我根本无法调用变量.GrantRoleAsync()
的方法member
(异常 CS1061)