我花了一些时间在此密码生成器上,但我实在太傻了,无法使其正常工作!
我有一个输入和一个输出文本框,其中包含生成的用户名和密码。
问题是第三个文本框“ inputLength”,我希望用户在GeneratePassword()中决定密码要保留多长时间
private void button1_Click(object sender, EventArgs e)
{
char[] newRow = new char[] { '\r', '\n' };
string[] name = input.Text.Split(newRow, StringSplitOptions.RemoveEmptyEntries);
string result = "";
for (int i = 0; i < name.Length; i++)
{
result += string.Format("{0}{1} # {2}\r\n",name[i].Substring(0, 3), i, GeneratePassword());
}
output.Text = result;
}
private static string GeneratePassword()
{
int passwordLength = Int32.Parse(inputLength.Text);
string result = "";
string allowedChars = "1234567890qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM";
Random random = new Random();
for (int i = 0; i < inputLength; i++)
{
result += allowedChars[random.Next(allowedChars.Length)].ToString();
System.Threading.Thread.Sleep(10);
}
return result;
throw new NotImplementedException();
}
最佳答案
这段代码看起来像是在Windows Forms应用程序中,因为您已经为按钮事件处理程序(button1_Click
)编写了代码,该事件处理程序随后调用了称为GeneratePassword
的静态方法。
问题是静态GeneratePassword
方法正在尝试访问实例成员inputLength
,而它不能这样做。您有两种选择:
将GeneratePassword
设置为实例成员(删除static
),以便它可以访问inputLength
实例成员。
将值从inputLength
传递到GeneratePassword
,例如:private static string GeneratePassword(string inputLength)
然后,您会这样称呼:
result += string.Format("{0}{1} # {2}\r\n",name[i].Substring(0, 3), i, GeneratePassword(inputLength.Text));
关于c# - 名称“inputLength”在当前上下文中不存在,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27404292/