C#如何调用的东西从一个类的方法中
问题描述:
我有一个产生此编译器错误的一些代码:C#如何调用的东西从一个类的方法中
CS0236 A field initializer cannot reference the non-static field, method, or property '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);
}
}
我怎样才能从课堂上调用rnd.Next
?我在编码小白,我不知道我怎么能叫的东西从另一个类或函数等
答
把它在构造函数中:
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()'中。 – Yatin
请尝试将代码放在问题中会更容易帮助 –
我建议您从阅读C#教程开始。有几十个初学者教程。 – itsme86