2016-07-30 4 views
0

내 목표는 임의의 숫자를 생성하고 4 개의 다른 텍스트 필드에 삽입하는 것입니다.임의의 숫자를 생성하고 텍스트 필드에 삽입

protected void Generate_Click(object sender, EventArgs e) 
{ 
    TextBox1.Text = GenerateNumber().ToString(); 
    TextBox2.Text = GenerateNumber().ToString(); 
    TextBox3.Text = GenerateNumber().ToString(); 
    TextBox4.Text = GenerateNumber().ToString(); 
} 

private int GenerateNumber() 
{ 
    int i = 0; 
    Random rand = new Random(); 
    i = rand.Next(0, 100); 

    return i; 
} 

뒤에 코드 그러나 다음 4 텍스트 필드에 4 개와 동일한 번호를 생성합니다.

enter image description here

나는 반복하지 않고 다른 텍스트 필드에서 다른 번호를 갖고 싶어.

+1

메서드에서'Random'을 이동합니다 :'private static Random = new Random(); –

답변

0

코드를 그대로 유지하면서 다른 번호를 생성 할 수있는 몇 가지 방법이 있습니다.

private static Random rand = new Random(); 
private int GenerateNumber() 
{ 
    int i = 0; 
    i = rand.Next(0, 100); 
    return i;    
} 
:처럼, 예를 들면 다음과 같습니다 GenerateNumber() 방법 밖에 Random 클래스의 정적 객체를 생성했다 Dmitry Bychenko @로

은 당신의 방법 GenerateNumber()

protected void Generate_Click(object sender, EventArgs e) 
{ 
    TextBox1.Text = GenerateNumber(36).ToString(); 
    TextBox2.Text = GenerateNumber(21).ToString(); 
    TextBox3.Text = GenerateNumber(77).ToString(); 
    TextBox4.Text = GenerateNumber(9).ToString(); 
} 

private int GenerateNumber(int a) 
{ 
    int i = 0; 
    Random rand = new Random(); 
    i = rand.Next(a, 100); 
    return i; 
} 

을 추가 매개 변수를 전달하거나

1

당신은 당신이 당신의 method를 호출 할 때마다 새로운 것을 만들지 않을 것이기 때문에, 당신은 그 방법을 벗어나야합니다. 하나의 방법은 클래스의 속성으로 가져 오는 것입니다.

Random rand = new Random(); 
protected void Generate_Click(object sender, EventArgs e) 
{ 
    TextBox1.Text = GenerateNumber().ToString(); 
    TextBox2.Text = GenerateNumber().ToString(); 
    TextBox3.Text = GenerateNumber().ToString(); 
    TextBox4.Text = GenerateNumber().ToString(); 
} 

private int GenerateNumber() 
{ 
    int i = 0; 
    i = rand.Next(0, 100); 
    return i; 
} 

다른 하나는 매개 변수

private int GenerateNumber(Random rand) 
{ 
    int i = 0; 
    i = rand.Next(0, 100); 
    return i; 
} 

로 전달하기 위해 그리고 당신은 이미 방법이 무엇인가하는 방법을 왜 모르겠어요 정직하게하는 것입니다.

protected void Generate_Click(object sender, EventArgs e) 
{ 
    Random rand = new Random(); 

    TextBox1.Text = rand.Next(0, 100).ToString(); 
    TextBox2.Text = rand.Next(0, 100).ToString(); 
    TextBox3.Text = rand.Next(0, 100).ToString(); 
    TextBox4.Text = rand.Next(0, 100).ToString(); 
} 
관련 문제