我正在尝试使用本教程https://www.youtube.com/watch?v=egq26JwyJkc(11:47)和相同的代码制作一个机器人,但出现此错误
The type arguments for method 'CommandService.AddModuleAsync<T>(IServiceProvider)' cannot be inferred from the usage. Try specifying the type arguments explicitly.
即使具有编程知识,也很难理解这里发生的事情...
这是我的代码
using Discord.Commands;
using Discord.WebSocket;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace forTesting
{
public class CommandHandler
{
private DiscordSocketClient _client;
private CommandService _service;
public CommandHandler(DiscordSocketClient client)
{
_client = client;
_service = new CommandService();
_service.AddModuleAsync(Assembly.GetEntryAssembly());
}
}
}
答案 0 :(得分:0)
这意味着您需要指定T是什么。
尝试根据通用方法限制指定T。
答案 1 :(得分:0)
聚会晚了一点,但希望有人会发现此信息对上述问题有所帮助。在构建更新模块后,将其添加到CommandService时以及执行命令时。因此,模块的构建阶段现在需要IServiceProvider。
所以您要寻找的答案是:
enums