C# 当前上下文中不存在名称“inputLength”

C# 当前上下文中不存在名称“inputLength”,c#,.net,winforms,C#,.net,Winforms,我花了一些时间在这个密码生成器上,但我实在太傻了,无法让它工作 我有一个输入和输出文本框,其中包含生成的用户名和密码 问题是第三个文本框,inputLength,我希望用户在GeneratePassword中决定密码的长度 private void button1_Click(object sender, EventArgs e) { char[] newRow = new char[] { '\r', '\n' }; string[] name = input.Text.Spl

我花了一些时间在这个密码生成器上,但我实在太傻了,无法让它工作

我有一个输入和输出文本框,其中包含生成的用户名和密码

问题是第三个文本框,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();
}
这是因为GeneratePassword是静态的,只能访问静态成员和方法。 InputLength是一个文本框,是表单的成员,因此GeneratePassword无法访问它

只需从GeneratePassword定义中删除static,或将inputLength.Text作为参数传递给GeneratePassword函数。

这是因为GeneratePassword是静态的,只能访问静态成员和方法。 InputLength是一个文本框,是表单的成员,因此GeneratePassword无法访问它


只需从GeneratePassword定义中删除static,或将inputLength.Text作为参数传递给GeneratePassword函数。

这段代码似乎在Windows窗体应用程序中,因为您已经为按钮事件处理程序button1编写了代码,button1\u Click随后调用了一个名为GeneratePassword的静态方法

问题是静态GeneratePassword方法正在尝试访问实例成员inputLength,但它无法访问。你有两个选择:

使GeneratePassword成为实例成员删除static,以便它可以访问inputLength实例成员。 将inputLength中的值传递到GeneratePassword,例如:

私有静态字符串生成器PasswordString inputLength

然后你会这样称呼它:

result += string.Format("{0}{1} # {2}\r\n",name[i].Substring(0, 3), i, GeneratePassword(inputLength.Text));

这段代码看起来像是在Windows窗体应用程序中,因为您已经为按钮事件处理程序button1_Click编写了代码,然后它调用了一个名为GeneratePassword的静态方法

问题是静态GeneratePassword方法正在尝试访问实例成员inputLength,但它无法访问。你有两个选择:

使GeneratePassword成为实例成员删除static,以便它可以访问inputLength实例成员。 将inputLength中的值传递到GeneratePassword,例如:

私有静态字符串生成器PasswordString inputLength

然后你会这样称呼它:

result += string.Format("{0}{1} # {2}\r\n",name[i].Substring(0, 3), i, GeneratePassword(inputLength.Text));

在GeneratePassword方法中,可能没有作为inputLength的局部变量。也许你想要int i=0;i<密码长度;而是i++吗?i