名称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();
}
记住它们是两种不同的形式。
感谢任何能帮忙的人。:)
问题:您试图访问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