public void DoStuff()
{
List<Label> RpmList = new List<Label>();
RpmList.Add(label0x0);
RpmList.Add(label0x1);
RpmList.Add(label0x2);
RpmList[0].BackColor = System.Drawing.Color.Yellow;
}
public void Form1_Load(object sender, EventArgs e)
{
DoStuff();
RpmList[1].BackColor = System.Drawing.Color.Yellow; // <---THIS ONE
}
如何从我所有其他课程中访问DoStuff()方法中的列表?
在DoStuff()方法中,我访问Form1
标签。
答案 0 :(得分:2)
您应该阅读variable scope
答案 1 :(得分:2)
从方法返回列表并将其分配给局部变量,然后使用局部变量。
private List<Label> DoSomething()
{
...
return RpmList;
}
...
var list = DoSomething();
list[0].BackColor = ...
答案 2 :(得分:0)
首先,方法名称可以是其他名称。
其次,像这样声明RpmList
:
class ClassName
{
List<Label> RpmList = new List<Label>();
public void DoStuff()
{
RpmList.Add(label0x0);
RpmList.Add(label0x1);
RpmList.Add(label0x2);
RpmList[0].BackColor = System.Drawing.Color.Yellow;
}
}
答案 3 :(得分:0)
您的RpmList变量是DoStuff方法的私有变量。您需要将其移出使其成为全局变量的方法,因此具有整个类的范围。我建议阅读面向对象编程,因为你冒犯了整个方法(封装和变量范围)的一个非常基本的法则。无论如何,要解决您的问题:
List<Label> RpmList = new List<Label>();
public void DoStuff()
{
RpmList.Add(label0x0);
RpmList.Add(label0x1);
RpmList.Add(label0x2);
RpmList[0].BackColor = System.Drawing.Color.Yellow;
}
public void Form1_Load(object sender, EventArgs e)
{
DoStuff();
RpmList[1].BackColor = System.Drawing.Color.Yellow; // <---THIS ONE
}