サイコロを振るような乱数を返す次のクラスを作成しました。
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
およびとして 2 回呼び出しますmySecondRoll
。これを行うことで、クラスの個別のインスタンスが作成され、2 つの個別の数値 (1 から 6 の間、もう 1 つは 1 から 12) が出力されると考えました。
私が抱えている問題は次のとおりです。
1) 最初の数字は常に 0 です。
2) クラスの 2 つのインスタンスが互いに干渉します。1 から 6 の間であるはずの数値は、そうではありません。
コードを修正する方法だけでなく、ここで何が起こっているのか、そしてその理由についても説明したいと思います。ありがとうございます。