C# 为什么我会收到一个错误,表明我的变量不';当我';你已经定义了吗?
我收到一个错误,指示当前上下文中不存在C# 为什么我会收到一个错误,表明我的变量不';当我';你已经定义了吗?,c#,variables,C#,Variables,我收到一个错误,指示当前上下文中不存在MyRandomArray。如何在C#WinForms应用程序中跨类访问变量 public void Quiz_Load(object sender, EventArgs e) { string[] MyRandomArray = getWordList(); } private void timer1_Tick(object sender, EventArgs e) { somefunction(MyRandomArray);/// My
MyRandomArray
。如何在C#WinForms应用程序中跨类访问变量
public void Quiz_Load(object sender, EventArgs e)
{
string[] MyRandomArray = getWordList();
}
private void timer1_Tick(object sender, EventArgs e)
{
somefunction(MyRandomArray);/// MyRandomArray doesn't exist in the current context.
}
MyRandomArray
是对quick\u Load
方法的修改;因此,您无法在timer1\u Tick
方法中看到它。如果需要数组在实例方法中可见,则必须使用字段来存储该数组:
private string[] MyRandomArray;
public void Quiz_Load(object sender, EventArgs e) {
this.MyRandomArray = getWordList();
}
private void timer1_Tick(object sender, EventArgs e) {
somefunction(this.MyRandomArray);
}
或者,由于您有一个计时器滴答作响,当您设置计时器回调时,您可能会有一个计时器回调,作为调用的一部分,您可以传递
MyRandomArray
,您已经定义了数组,但只在quick\u Load
方法的范围内,因此timer1\u-Tick
的范围内不知道它。如果将其声明为类的实例成员,则可以从任何实例方法访问:
private string[] MyRandomArray;
public void Quiz_Load(object sender, EventArgs e)
{
this.MyRandomArray = getWordList();
}
private void timer1_Tick(object sender, EventArgs e)
{
somefunction(this.MyRandomArray); // No problem
}
进一步阅读
实际上是这样的。你的评论无效@科尔约翰逊是的,对不起,我忘了从OP的原始代码中删除它。现在修好了。