我编写了以下类来返回一个随机数,例如掷骰子:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GameTest
{
class Dice
{
public int publicMinNum
{
get { return _minNum; }
set { _minNum = value; }
}
public int publicMaxNum
{
get { return _maxNum; }
set { _maxNum = value; }
}
static int _minNum;
static int _maxNum;
static Random diceRoll = new Random();
public int rolled = diceRoll.Next(_minNum, _maxNum);
}
}
这个类在我的表单中被调用了几次:
private void btnPushMe_Click(object sender, EventArgs e)
{
Dice myRoll = new Dice();
myRoll.publicMinNum = 1;
myRoll.publicMaxNum = 7;
lblMain.Text = myRoll.rolled.ToString();
Dice mySecondRoll = new Dice();
mySecondRoll.publicMinNum = 1;
mySecondRoll.publicMaxNum = 13;
lblMain2.Text = mySecondRoll.rolled.ToString();
}
如您所见,我将课程称为myRoll
和两次mySecondRoll
。我认为这样做会创建类的单独实例并输出两个单独的数字(一个在 1 和 6 之间,另一个在 1 和 12 之间)
我遇到的问题是:
1)第一个数字总是0。
2)类的两个实例相互干扰,即。应该在 1 到 6 之间的数字不是。
我想知道,不仅仅是如何修复代码,还想解释一下这里发生了什么以及为什么,谢谢。