C# '无法在此上下文中使用,因为它缺少get访问器'
我刚刚开始学习c语言,对它的工作原理有了非常基本的了解。在此代码中,我不断收到“player.HasGravity”行的错误代码“CS0154”: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
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,所以他很可能没有使用自动实现的属性。