名称timleft在当前上下文中不存在

本文关键字:上下文 不存在 timleft 名称 | 更新日期: 2023-09-27 18:09:57

这个问题已经结束

这与我见过的与此相关的其他问题不同。我的马里奥游戏中有两种形式,对吧?我在其中一个GameGUI.cs中设置了一个公共整数。在TimerStatus.cs中,我想显示这个变量,但它说的消息是"名称timelleft不存在于当前上下文中。"

下面是一些代码

public partial class TimerStatus : Form
{
    int TimerSecondsLeft = TimeLeft * 0.6;
    public TimerStatus()
    {
        InitializeComponent();
    }
    private void TimerStatus_Load(object sender, EventArgs e)
    {
        label1.Text = "You have " + TimeLeft + " seconds remaining.";
    }
}

这是存储timleft的代码。

公共部分类GameGUI:窗体{public int timleft = 400;Bool右,左;bool isFacingLeft = false;bool跳;int G = 16;int力;int WalkSpeed = 1;int分数= 0;int Lives = 3;

    bool isWalkFrameOne = false;
    byte animTime = 4;
    public GameGUI()
    {
        InitializeComponent();
    }

记住它们是两种不同的形式。

感谢任何能帮忙的人。:)

名称timleft在当前上下文中不存在

问题:您试图访问TimeLeft,就好像它是在同一个类中声明的一样。为了访问在外部类中声明的变量,你需要它们的类实例成员,或者如果它们被声明为static,你可以使用它们的classname来访问。

注意:需要将变量声明为属于整个类的static

解决方案:在你的程序中你的TimeLeft变量似乎是一个类级变量,所以你可以在你的GameGUI类文件中声明你的TimeLeft变量为静态。这样你就可以使用它的类名从其他类访问它。

试试这个:

public partial class GameGUI : Form
{
    public static int TimeLeft = 400;
    bool right, left;
    /*remaining code here*/
}

使用它的类名GameGUI

public partial class TimerStatus : Form
{
    int TimerSecondsLeft = GameGUI.TimeLeft * 0.6;
    public TimerStatus()
    {
        InitializeComponent();
    }
    private void TimerStatus_Load(object sender, EventArgs e)
    {
        label1.Text = "You have " + GameGUI.TimeLeft + " seconds remaining.";
    }
}

不能直接访问另一个类中的timleft变量。如果它是静态的,则需要使用类对象或类名来访问它。

public partial class GameGUI : Form
{
    public static int TimeLeft = 400;
    .
    .
    .//your code
}

现在你可以使用类名直接调用它:

GameGUI.TimeLeft