C# Discord.NET 命令如何将字符串数组作为参数

Jar*_*ile 1 c# arrays discord discord.net

我正在使用 Discord.NET 1.0.2,这个问题特定于 Discord.NET。

我正在使用我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);
}
Run Code Online (Sandbox Code Playgroud)

然后在我单独的班级中,我有一个特定的命令

public class Command : ModuleBase<SocketCommandContext>
{
    [Command("test")]
    public async Task balanceCommmand(String[] stringArray)
    {
        // code
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,在运行程序时,我收到System.InvalidOperationException“附加信息:未找到类型 String[] 的类型读取器,必须指定一个”

我之前在异步任务下使用过参数,但它似乎不想将字符串数组作为参数。

我如何能够使用 Discord.Commands 1.0.2 版将字符串数组作为参数传递给命令。

如果没有办法做到这一点,有没有办法通过使用替代方法来模仿这一点?

我在谷歌上环顾四周,没有找到与我有类似问题甚至类似问题的人。

Unk*_*own 6

而不仅仅是String[]你需要params像这样放置它:

public class Command : ModuleBase<SocketCommandContext>
{
    [Command("test")]
    public async Task balanceCommmand(params String[] stringArray)
    {
        // code
    }
}
Run Code Online (Sandbox Code Playgroud)

params 关键字:https : //docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/params