C# 将random转换为int visual studio 2015
为什么这不起作用? 它出现在visual Studio 2015 windows窗体应用程序C中# rnd下有一个错误,它说: 字段初始值设定项不能引用非静态字段、方法或 属性“Form1.rnd” 在C#中,语句不能在类声明下立即出现。它们必须是函数或方法的一部分C# 将random转换为int visual studio 2015,c#,winforms,random,visual-studio-2015,C#,Winforms,Random,Visual Studio 2015,为什么这不起作用? 它出现在visual Studio 2015 windows窗体应用程序C中# rnd下有一个错误,它说: 字段初始值设定项不能引用非静态字段、方法或 属性“Form1.rnd” 在C#中,语句不能在类声明下立即出现。它们必须是函数或方法的一部分 namespace guessing { public partial class Form1 : Form { void MethodX() { Random
namespace guessing
{
public partial class Form1 : Form
{
void MethodX()
{
Random rnd = new Random();
int rndm = rnd.Next(1, 13);
/* to be continued... */
}
}
}
试试这个:
namespace guessing
{
public partial class Form1 : Form
{
int rndm = new Random().Next(1, 13);
编辑
针对TomTom:
有很多方法可以做到这一点。如果需要始终保持Random
的实例可用,请在类级别上定义它
namespace guessing
{
public partial class Form1 : Form
{
Random rand = new Random();
int rndm = new Random().Next(1, 13);
// Or make it static.
static Random rand = new Random();
int rndm = Form1.rand.Next(1, 13);
// Or a method
private int GetRandomInteger()
{
return new Random().Next(1, 13);
// or call your class level instance of Random
}
是的,正如Soner Gönül所说,您必须将此代码添加到表单中的方法中。因为您可能是使用设计器创建表单的,所以只需转到事件并创建一个方法
created
(或类似方法)。然后将代码放入所创建方法的主体中。可能您想在方法中编写这些行,比如Main
maybe?我会-1,因为它具有不同的语义。具体来说,您无法从同一个随机实例中获得另一个随机数。@TomTom:@Tal在类级别上定义了int
变量。我假设塔尔想要一个随机数。你假设Tal想要有数百个随机数。实际上不是。我假设Tal阅读了这里的规则,并提出了一个非常简单的例子来演示一个问题。我真的假设他不想要一个随机数,只是把它作为一个例子。@TomTomTom:这与在方法中定义random
对象是一样的。注意,这是非常不可靠的代码;如果在循环中调用MethodX
,则可以使用相同的Random
种子并对Next
的结果进行偏移rnd
可能应该是构造函数中初始化的类变量。当然。只是为了让代码编译以启动操作。没有对他的功能意图做出任何假设。@dlatikay:如果您返回int
,这将是一个值得回答的问题。
namespace guessing
{
public partial class Form1 : Form
{
Random rand = new Random();
int rndm = new Random().Next(1, 13);
// Or make it static.
static Random rand = new Random();
int rndm = Form1.rand.Next(1, 13);
// Or a method
private int GetRandomInteger()
{
return new Random().Next(1, 13);
// or call your class level instance of Random
}