C#如何从类方法中调用某些内容

C#如何从类方法中调用某些内容,c#,C#,我有一些代码会产生此编译器错误: CS0236字段初始值设定项无法引用非静态字段、方法或属性“PublicModule.rnd” 代码如下,带有标记错误的行: public class PublicModule : ModuleBase { Random rnd = new Random(); int value = rnd.Next(4,50); // <<<< Error is here [Command("Ping")] publi

我有一些代码会产生此编译器错误:

CS0236字段初始值设定项无法引用非静态字段、方法或属性“PublicModule.rnd”

代码如下,带有标记错误的行:

public class PublicModule : ModuleBase
{
    Random rnd = new Random();
    int value = rnd.Next(4,50); // <<<< Error is here

    [Command("Ping")]
    public async Task ping()
    {
       await ReplyAsync(Context.User.Mention + ", Pong!");
    }

    [Command("Hara")]
    public async Task hara()
    {
        await ReplyAsync("Hara noi te iubim <3 .");
    }

    [Command("kek")]
    public async Task kek()
    {
        await ReplyAsync(Context.User.Mention + ", kek");
    }

    [Command("Random")]
    public async Task Dice()
    {
        await ReplyAsync(Context.User.Mention + " ur random number is : " + value);
    }
}
公共类PublicModule:ModuleBase
{
随机rnd=新随机();

int value=rnd.Next(4,50);//从类中删除语句
int value=rnd.Next();
,并将其移动到函数
Dick()
,如下所示:

public async Task Dice()
{
    int value = rnd.Next(4, 50);
    await ReplyAsync(Context.User.Mention + "ur random number is: " + value);
}

希望有帮助。

将其放入构造函数:

Random rnd = new Random();
int value;

public PublicModule()
{
    value = rnd.Next(4,50); 
}
但我还应该指出,这只会为每个类实例提供一个新的随机数。如果每次调用该函数时都需要一个不同的随机数,应该这样做:

[Command("Random")]
public async Task Dice()
{
    int value = rnd.Next(4,50);
    await ReplyAsync(Context.User.Mention + " ur random number is : " + value);
}

您需要将
rnd.Next
放在函数体中。不能在C#中的函数外编写语句。请将
int value=rnd.Next();
语句移动到
Dick()中
在显示值之前。请尝试将代码放在问题中,这样会更容易帮助我建议你从C#教程开始。有几十个初学者教程。在这里发布图像而不是代码的文本被认为是非常粗鲁的。你会得到一个mulligan(我为你修复了它).别再这样做了.的确是这样的:P.现在已经改变了。