c#窗体随机数生成器
时间: 2023-12-06 18:04:49 浏览: 50
以下是一个简单的C#窗体随机数生成器的示例代码:
```csharp
using System;
using System.Windows.Forms;
namespace RandomNumberGenerator
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnGenerate_Click(object sender, EventArgs e)
{
int length = Convert.ToInt32(txtLength.Text);
bool preventDuplicate = chkPreventDuplicate.Checked; bool sleep = chkSleep.Checked;
RandomNumberGenerator generator = new RandomNumberGenerator(length, preventDuplicate, sleep);
string result = generator.Generate();
txtResult.Text = result;
}
}
public class RandomNumberGenerator
{
private int length;
private bool preventDuplicate;
private bool sleep;
public RandomNumberGenerator(int length, bool preventDuplicate, bool sleep)
{
this.length = length;
this.preventDuplicate = preventDuplicate;
this.sleep = sleep;
}
public string Generate()
{
string result = string.Empty;
Random random = new Random();
while (result.Length < length)
{
int randomNumber = random.Next(0, 36);
char character = GetCharacter(randomNumber);
if (!preventDuplicate || !result.Contains(character.ToString()))
{
result += character.ToString();
}
if (sleep)
{
System.Threading.Thread.Sleep(1);
}
}
return result;
}
private char GetCharacter(int randomNumber)
{
if (randomNumber < 10)
{
return (char)('0' + randomNumber);
}
else
{
return (char)('a' + randomNumber - 10);
}
}
}
}
```
在窗体中,用户可以指定所需的随机数长度、是否防止重复以及是否需要线程休眠。生成随机数的方法是在RandomNumberGenerator类中实现的,该方法使用Random类生成随机数,并使用GetCharacter方法将数字转换为字母数字字符。如果用户选择了防止重复选项,则在生成随机数时检查结果中是否已经包含了当前字符。如果用户选择了线程休眠选项,则在生成每个字符之间暂停1毫秒。