这就是我想出的代码
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)