C# 当前上下文中不存在名称TimeLeft 这个问题已经结束了。

C# 当前上下文中不存在名称TimeLeft 这个问题已经结束了。,c#,integer,public,C#,Integer,Public,这与我看到的其他与此相关的问题不同。我的马里奥游戏有两种形式,对吗?我在其中一个GameGUI.cs中设置了一个公共整数。在TimerStatus.cs中,我想显示这个变量,但它表示消息名称TimeLeft在当前上下文中不存在 下面是一些代码 public partial class TimerStatus : Form { int TimerSecondsLeft = TimeLeft * 0.6; public TimerStatus() { Init

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

下面是一些代码

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.";
    }
}
这是存储TimeLeft的代码

公共部分类GameGUI:Form { 公共int TimeLeft=400; 布尔右,左; bool isFacingLeft=假; 跳远; int G=16; 国际原力; int步行速度=1; 智力得分=0; int=3

    bool isWalkFrameOne = false;
    byte animTime = 4;

    public GameGUI()
    {
        InitializeComponent();
    }
记住它们有两种不同的形式

感谢所有能够提供帮助的人。

问题:您试图访问TimeLeft,就像它是在同一个类中声明的一样。为了访问在类外声明的变量,您需要它们的类实例成员,或者如果它们声明为静态,您可以使用它们的类名进行访问

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

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

试试这个:

public partial class GameGUI : Form
{
    public static int TimeLeft = 400;
    bool right, left;
    /*remaining code here*/
}
使用它的类名GameGUI访问它


无法直接访问另一个类中的TimeLeft变量。需要使用类对象或类名(如果它是静态的)来访问它

public partial class GameGUI : Form
{
    public static int TimeLeft = 400;
    .
    .
    .//your code
}
现在您可以使用类名直接调用它,如下所示:

GameGUI.TimeLeft

您在何处声明了变量TimeLeft?将字段公开仅意味着您可以使用包含该字段的对象从任何位置访问它。
GameGUI.TimeLeft