在移动应用程序中使用对象 c#

Using an Object in Mobile App c#

我正在使用 c# 和 Xamarin.Forms 开发一个简单的移动应用游戏,但在尝试使用名为 Player 的对象 class 时遇到了困难。

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 中的任何 属性 时,应用程序崩溃。

现在我在 BasePage(ContentPage class)中将 Player 播放器作为数据成员,并且当用户按下按钮时会发生对播放器的访问:

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
   }

我应该如何创建播放器才不会崩溃?我一直在检查这里的其他问题,但我一直无法找到我要找的东西(我也尝试过绑定对象,但我可能没有正确地做到这一点)。

此代码导致无限递归循环 - public Level(大写 'L')属性 返回 public 级别 属性,这会导致它再次调用 '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; }