在移动应用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
   }

我应该如何创建播放器,使它不会崩溃?我一直在检查这里的其他问题,我还没能找到我要找的东西(我也试过绑定对象,但我可能做得不对)。

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

这段代码导致了一个无限递归循环-公共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; }