C#Discord.NET命令如何将字符串数组作为参数
我正在使用Discord.NET 1.0.2,这个问题是针对Discord.NET的 我正在使用C#Discord.NET命令如何将字符串数组作为参数,c#,arrays,discord,discord.net,C#,Arrays,Discord,Discord.net,我正在使用Discord.NET 1.0.2,这个问题是针对Discord.NET的 我正在使用Discord.Commands来说明我如何使用命令,并将它们初始化为Discord.Commands var msg = message as SocketUserMessage; var context = new SocketCommandContext(_client, msg); int argPos = 0; if(msg.HasCharPrefix('>', ref argPos)
Discord.Commands
来说明我如何使用命令,并将它们初始化为Discord.Commands
var msg = message as SocketUserMessage;
var context = new SocketCommandContext(_client, msg);
int argPos = 0;
if(msg.HasCharPrefix('>', ref argPos))
{
var result = await _service.ExecuteAsync(context, argPos);
}
然后在我的单独类中,我有一个特定的命令
public class Command : ModuleBase<SocketCommandContext>
{
[Command("test")]
public async Task balanceCommmand(String[] stringArray)
{
// code
}
}
公共类命令:ModuleBase
{
[命令(“测试”)]
公共异步任务平衡命令(字符串[]字符串数组)
{
//代码
}
}
但是,在运行程序时,我收到一个System.InvalidOperationException
“附加信息:找不到类型字符串[]的类型读取器,必须指定一个”
我以前在异步任务下使用过参数,但它似乎不希望使用字符串数组作为参数
如何使用Discord.Commands 1.0.2版将字符串数组作为参数传递给命令
如果没有办法做到这一点,有没有一种方法可以让我用另一种方法来模仿呢
我在谷歌上四处搜索,没有发现有人有与我类似的问题,甚至没有发现与我类似的问题。而不仅仅是
String[]
你需要像这样放置参数:
public class Command : ModuleBase<SocketCommandContext>
{
[Command("test")]
public async Task balanceCommmand(params String[] stringArray)
{
// code
}
}
公共类命令:ModuleBase
{
[命令(“测试”)]
公共异步任务平衡命令(参数字符串[]字符串数组)
{
//代码
}
}
params关键字:而不仅仅是String[]
您需要将params
放在前面:
public class Command : ModuleBase<SocketCommandContext>
{
[Command("test")]
public async Task balanceCommmand(params String[] stringArray)
{
// code
}
}
公共类命令:ModuleBase
{
[命令(“测试”)]
公共异步任务平衡命令(参数字符串[]字符串数组)
{
//代码
}
}
params关键字:您可以使用CommandService
的AddTypeReader
方法添加自定义TypeReader
。您可以使用CommandService
的AddTypeReader
方法添加自定义TypeReader
。