从任意位置访问阵列
本文关键字:阵列 访问 位置 任意 | 更新日期: 2023-09-27 18:00:12
我有一个静态数组,它使用一个名为Variables.rows
的静态变量来定义数组中的行数。CCD_ 2是在另一个称为CCD_ 3的静态类中定义的。
public static class TheArrayClass
{
public static double[,] HiThere = new double[Variables.rows, 6];
}
我的问题是,一旦项目运行(我相信),就会创建静态数组。这意味着为Variables.Rows
分配正确值所需的方法没有及时执行。这意味着在填充数组时会出现索引错误,因为数组的大小不正确。
我需要一种方法来解决这个问题,这样我就可以从代码中的任何地方访问数组了。
尝试在表单之间传递消息。
public partial class Form1 : Form
{
private string _data;
public Form1()
{
InitializeComponent();
_data = "Some data";
}
private void button1_Click(object sender, EventArgs e)
{
var form2 = new Form2();
form2.Data = _data;
form2.Show();
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public string Data { get; set; }
}
有趣的是,您没有显示Variables.Rows
的定义位置。无论哪种方式,都可以在类的构造函数中执行所需的任何初始化。
public static class TheArrayClass
{
public static double[,] HiThere;
static TheArrayClass()
{
HiThere = new double[Variables.rows, 6];
}
}
我认为您有设计问题,所以我将尝试添加一些信息来帮助您解决问题。
首先,静态类实际上是在项目运行后立即创建的。但是静态类也可以有一个静态构造函数(您可以在其中定义变量.rows),该构造函数也会在项目运行时运行一次。
此外,也许您应该使用ArrayList(http://msdn.microsoft.com/en-us/library/system.collections.arraylist.aspx)或GenericList(http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx),通过这样做,您可以轻松避免数组变量的限制(如更改其大小)。