在移动应用c#中使用对象
本文关键字:对象 移动 应用 | 更新日期: 2023-09-27 17:50:34
我正在使用c#和Xamarin开发一款简单的手机应用游戏。窗体和被卡住试图使用一个名为Player的对象类。
class Player
{
private int level;
public int Level
{
get { return Level; }
set { Level = value; }
}
public Player()
{ //variables initialized
this.Level = 1;}
}
创建UI的ContentPage也创建了一个Player的实例,但是当访问Player中的任何属性时,应用程序会崩溃。
现在我有playerplayer作为数据成员在BasePage (ContentPage类),和访问播放器发生时,用户按下一个按钮:
class BasePage : ContentPage
{
private Player player;
public BasePage() {
player= new Player();
//stuff...
var btnPlayer = new Button
{
Text = "YOU"
};
btnPlayer.Clicked += (o, e) =>
{
//change text in lblMessage
lblMessage.Text = "Your level: " + player.Level;
};
//stuff is added to screen, not relevant
}
我应该如何创建播放器,使它不会崩溃?我一直在检查这里的其他问题,我还没能找到我要找的东西(我也试过绑定对象,但我可能做得不对)。
这段代码导致了一个无限递归循环-公共Level
(大写'L')属性返回公共Level属性的值,这导致它再次调用'get',重复
public int Level
{
get { return Level; }
set { Level = value; }
}
应该使用私有成员变量level
(小'l')
public int Level
{
get { return level; }
set { level = value; }
}
你也可以这样做,这将允许c#为你创建属性,而不显式地创建一个私有变量。
public int Level { get; set; }