C#如何从类方法中调用某些内容
我有一些代码会产生此编译器错误: CS0236字段初始值设定项无法引用非静态字段、方法或属性“PublicModule.rnd” 代码如下,带有标记错误的行: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
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.现在已经改变了。