在当前的背景下,Noobish不存在

时间:2017-03-02 23:00:28

标签: c#

为什么我不能打电话给这个? ;(

public void StartNewGame()
{
    Button GamePanelHideButton = new Button();
}

public void GamePanelHideButtonClick()
{
    GamePanelHideButton.Visible = !GamePanelHideButton.visible;
}

GamePanelHideButton在上下文中不存在:(虽然它是在之前创建的。

3 个答案:

答案 0 :(得分:2)

您创建的按钮的范围是startnewgame(),并且无法访问方法GamePanelHideButtonClick

将GamePanelHideButton变量移出两个方法之外。

试试这个

public Button GamePanelHideButton;

public void StartNewGame()
{
    GamePanelHideButton = new Button();
}

public void GamePanelHideButtonClick()
{
    GamePanelHideButton.Visible = !GamePanelHideButton.visible;
}

答案 1 :(得分:0)

GamePanelHideButton是一个局部变量 - 它只存在"存在"虽然StartNewGame方法实际上正在执行,但实际引用它的唯一地方是StartNewGame方法内部。你应该把它变成一个字段(类范围的变量)。

此外,您的声明是"它之前创建的"它的使用肯定是是真的(或者,至少,必然是真的)。没有任何东西可以保证您展示的两种方法将以任何特定的顺序执行 - 您可以按照您认为所有编译器都知道的任何顺序执行它们。

答案 2 :(得分:0)

在任何方法之外移动了按钮GamePanelHideButton = new Button(); 并且它有效,感谢所有认真的人寻求帮助。

Button GamePanelHideButton = new Button();