C# '无法在此上下文中使用,因为它缺少get访问器'

C# '无法在此上下文中使用,因为它缺少get访问器',c#,C#,我刚刚开始学习c语言,对它的工作原理有了非常基本的了解。在此代码中,我不断收到“player.HasGravity”行的错误代码“CS0154”: using GTA; using System; using System.Collections.Generic; using GTA.Math; using GTA.Native; using System.Windows.Forms; public class SuperJump : Script { public SuperJump

我刚刚开始学习c语言,对它的工作原理有了非常基本的了解。在此代码中,我不断收到“player.HasGravity”行的错误代码“CS0154”:

using GTA;
using System;
using System.Collections.Generic;
using GTA.Math;
using GTA.Native;
using System.Windows.Forms;

public class SuperJump : Script
{
    public SuperJump()
    {
        Tick += OnTick;
        KeyDown += OnKeyDown;
        KeyUp += OnKeyUp;
        Interval = 10;
    }

    void OnTick(object sender, EventArgs e)
    {
    }

    void OnKeyDown(object sender, KeyEventArgs e)
    {
    }

    void OnKeyUp(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Space)
        {
            Ped player = Game.Player.Character;
            player.HasGravity
        }
    }
}
错误消息是:

属性或索引器“Entity.HasGravity”无法在此上下文中使用,因为它缺少get访问器


我看过一些有类似问题的帖子,但我仍然不明白问题出在哪里。

检查你的角色类。HasGravity属性很可能没有定义get方法,如下所示

class Character
{
    private bool hasGravity;
    public  bool HasGravity
    {
        set { hasGravity = value; }
    }
}
您需要执行以下操作来解决问题:

class Character
{
    private bool hasGravity;
    public  bool HasGravity
    {
        set { hasGravity = value; }
        get { return hasGravity;  }
    }
}

听起来HasGravity是一个没有getter的属性。您没有包含该代码,所以这只是一个猜测。拥有一个属性真的违反直觉。。。。然后就看不懂了。这个Ped类的代码在哪里?为什么不使用自动实现的属性?我可以,但问题的前提是他实现了setter而不是getter,所以他很可能没有使用自动实现的属性。