Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用数组登录/注册表单_C#_Arrays_Multidimensional Array - Fatal编程技术网

C# 使用数组登录/注册表单

C# 使用数组登录/注册表单,c#,arrays,multidimensional-array,C#,Arrays,Multidimensional Array,我在传递数组的值时遇到问题 我在一个类中创建了一个数组,然后在frmMainform1中实例化它,然后在数组中放入一些值。我在数组中放入用户名和密码。frmMain应该传递数组中的值,对吗 我的问题是,当我实例化在frmProfileform2中保存数组的类时,就好像我从来没有在其中放入一些值一样 简言之,我希望数组能够以所有形式访问。我需要一个构造函数方法吗;设置 public class Tagasalo //this is the class i created { public

我在传递数组的值时遇到问题

我在一个类中创建了一个数组,然后在frmMainform1中实例化它,然后在数组中放入一些值。我在数组中放入用户名和密码。frmMain应该传递数组中的值,对吗

我的问题是,当我实例化在frmProfileform2中保存数组的类时,就好像我从来没有在其中放入一些值一样

简言之,我希望数组能够以所有形式访问。我需要一个构造函数方法吗;设置

public class Tagasalo //this is the class i created
{
    public String[,] array = new String[5, 2];

}
这是我在frmMainform1中的代码

    Tagasalo arr = new Tagasalo();
    frmProfile profile = new frmProfile();

    int row;
    bool validInput = true;
    int tries = 3;


    public frmMain()
    {
        InitializeComponent();

    }

    public void btnSignUp_Click(object sender, EventArgs e)
    {
        if (txtUsernameS.Text.Trim() == String.Empty)
        {
            errorProvider1.SetError(txtUsernameS, "Please put a Username.");
        }
        else if (txtUsernameS.TextLength > 1 && txtUsernameS.TextLength < 4)
        {
            errorProvider1.SetError(txtUsernameS, "Your Username must have 4 or more characters.");
        }
        else
        {
            errorProvider1.Clear();
        }

        if (txtPasswordS.Text == String.Empty)
        {
            errorProvider2.SetError(txtPasswordS, "Please put a Password.");
        }
        else if (txtPasswordS.TextLength > 1 && txtPasswordS.TextLength < 6)
        {
            errorProvider2.SetError(txtPasswordS, "Your Password must have 6 or more characters.");
        }
        else
        {
            errorProvider2.Clear();
        }

        for (row = 0; row < 5; row++)
        {
            if (txtUsernameS.TextLength >= 4 && txtPasswordS.TextLength >= 6)
            {
                if (txtConfirmPassword.Text != txtPasswordS.Text)
                {
                    errorProvider3.SetError(txtConfirmPassword, "Your Password does not match.");
                }
                else if (txtConfirmPassword.Text == txtPasswordS.Text)
                {
                    if (arr.array[row, 0] == null && arr.array[row, 1] == null)
                    {
                        arr.array[row, 0] = txtUsernameS.Text;
                        arr.array[row, 1] = txtPasswordS.Text;
                        MessageBox.Show("Signed-Up Successfully!");

                        break;
                    }
                    else if(txtUsernameS.Text == arr.array[row,0])
                    {
                        MessageBox.Show("Username already Used.");
                        break;
                    }
                }
            }
        }
        if (row > 5)
        {
            MessageBox.Show("Sorry, maximum number of accounts has been reached.");
        }
    }

对不起,如果太长了。放学后我在网上搜索了好几天,但都找不到答案

您想让变量以各种形式访问是什么意思

要访问另一个类中的变量,必须编写classname.variablename来访问它们,例如:

Tagasalo.array。。。做些事情

如果您想创建一个类,该类描述通过该类的构造函数创建的对象的变量和/或方法,然后访问这些变量和/或方法,我建议您先阅读有关类、对象和实例的内容,如果这对您再次询问这些知识没有帮助的话

另一件可能有用的事情是:如果您想要一个描述变量和/或方法的类,那么应用程序的其余部分应该能够创建这个类的一个且唯一的实例,阅读关于单例类的内容


希望这对您有所帮助,指定您想要做的事情,我可能会帮助您更具体。

老实说,我不建议使用全局变量,因为它使用了不必要的资源

但是,

您所解释/描述的是一个全局变量。如果您使用的是我认为是的windows窗体,那么您可以右键单击项目名称>添加>类来创建一个类。叫它“MyArrayClass”。 然后,正如您已经说过的,使用构造函数MyArray{get;set} 然后,您可以通过:MyArrayClass.MyArray[i]访问它,其中[i]是您想要的索引

一旦我找到一些好的文档,我会编辑这篇文章

编辑:这非常有效,因为您是新的:。 只需将其传递到Form2的构造函数中:

Form2 form2 = new Form2(arr);
form2.ShowDialog();
然后在Form2构造函数中:

public Form2(List<double> arr)
{
   //do stuff with it here
}
使用任何你可以写的地方:

    GlobalClass.GlobalVar = "any string value"

这是用于字符串值。

我的意思是,如果我在数组中插入了一个值,我希望该值也可以以其他形式访问。但问题是,如果我实例化以另一种形式保存数组的类。数组似乎为空。因为在frmMain和frmProfile中都创建了Tagasalo的新对象,并且都具有Tagasalo中描述的数据,但是,如果您以1种形式更改arr的数据,这不会更改第二种形式的另一种arr的数据,因为它们是不同的对象。我如何才能将形式1中数组的数据访问到另一种形式?我认为创建一个单例类,您只需创建一个实例就可以了,您可以只创建一个实例,因此,当您在任何表单中的实例上更改某些内容时,也会在其他表单中使用的相同实例中进行更改。此链接将引导您完成整个过程。msdn.microsoft.com/en us/library/ff650316.aspx中找不到内容我就是这么做的。我添加了一个类。我将把构造函数放在哪里?在表格1中?还是以各种形式?还是在我加的课上@jbutler483确保它是公共的,然后通过以下方式调用它:MyClass.MyGetMethod值是多少?MyArray{get{return value;}我的任务是使用数组。我试着问我是否可以使用数据库,但他们拒绝了。你发布了你的项目吗?仅仅使用“调试器”意味着一旦应用程序关闭,实际上什么都不会被“保存”。老实说,我不确定它是否会以这种方式保存,而不保存到数据库中,你说这不合适。是的。我知道这一点ng将在应用程序关闭后保存。
public Form2(List<double> arr)
{
   //do stuff with it here
}
static class Global
{


 private static string _globalVar = "";

    public static string GlobalVar
    {
        get { return _globalVar; }
        set { _globalVar = value; }
    }
}
    GlobalClass.GlobalVar = "any string value"