gpt4 book ai didi

c# - C#中变量之间的歧义

转载 作者:太空狗 更新时间:2023-10-29 18:04:02 24 4
gpt4 key购买 nike

首先我想说我先搜索了一下,然后在其他各种事情上发现了很多类似的问题,但不完全是这个问题。

我有这个代码:

namespace New_Game.GameClasses
{
/// <summary>
/// This is a game component that implements IUpdateable.
/// </summary>
public class Error : Microsoft.Xna.Framework.GameComponent
{
bool gameOver = false;
List<Enemy> enemies = new List<Enemy>();

public bool gameOver {
get { return gameOver; }
set { gameOver = value; }
}

public override void Update(GameTime gameTime, Vector2 target)
{
// TODO: Add your update code here
Rectangle playerRect = new Rectangle((int)target.X, (int)target.Y, 64, 64);

foreach (Enemy e in enemies)
{
e.Target = target;
e.Update(gameTime);
Rectangle enemyRect = new Rectangle((int)e.Position.X + 7, (int)e.Position.Y + 7, 32 - 7, 32 - 7);

if (playerRect.Intersects(enemyRect))
{
gameOver = true;
}
}
}
}
}

我的问题是这样说的错误:“New_Game.GameClasses.Error.gameOver”和“New_Game.GameClasses.Error.gameOver”之间存在歧义

如果删除 get/set 方法,当我尝试从 Game1.cs 访问 gameOver 时会遇到不同的错误。如果我将其更改为以下内容,则会出现相同的错误:

public bool gameOver { get; set; }

我的问题是如何解决歧义错误?

最佳答案

您需要重命名您的私有(private) gameOver 变量。改变这个:

bool gameOver = false;
public bool GameOver {
get { return gameOver; }
set { gameOver = value; }
}

bool _gameOver = false;
public bool GameOver {
get { return _gameOver; }
set { _gameOver = value; }
}

您不能在单个类中使用相同的变量名。

或者,假设您使用的是最新版本的 .Net,您可以删除私有(private)变量,只需要:

public bool GameOver { get; set; }

祝你好运。

关于c# - C#中变量之间的歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14371817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com