【问题标题】:C# How to write down a parameter of a constructor of a class's method that you are using in a different class?C#如何写下您在不同类中使用的类方法的构造函数的参数?
【发布时间】:2026-02-20 09:25:04
【问题描述】:

所以我尝试在 Health 类的 Level 中使用布尔方法 UpHealth。然而,Level 类的构造函数具有参数 levelIndex。我不知道在 Health 类的 new Level 之后的参数点上写什么。这是关卡类:

partial class Level : GameObjectList
{
protected bool upHealth;

public Level(int levelIndex)
{
    //Stuff
}

public bool UpHealth()
{
    upHealth = false;
    SpriteGameObject healthpack = this.Find("uphealth") as SpriteGameObject;
    Player player = this.Find("player") as Player;
    if (healthpack.CollidesWith(player))
        return true;
    return false;
}

这是健康类:

class Health : GameObjectList
{
Level level;

public Health(int layer = 3, string id = "") : base(layer, id) 
{
    //Stuff
    level = new Level( <--WHAT DO I WRITE HERE?--> );
}

public override void Update(GameTime gameTime)
{
    base.Update(gameTime);
    Player player = GameWorld.Find("player") as Player;
    AnimatedGameObject rocket = GameWorld.Find("rocket") as AnimatedGameObject;

    foreach (GameObject obj in gameObjects)
    {
        SpriteGameObject h = obj as SpriteGameObject;
        if (level.UpHealth())
        {
            this.Add(h);
            return;
        }
    }
}

这可能很容易解决,但我不知道该怎么做。

【问题讨论】:

  • A levelIndex 作为 int 值?任意数?取决于你想要放什么。
  • 想想levelIndex对于Level构造函数的用法和意义,并传递一个Level类期望的整数值。或者你可以为 levelIndex 提供一个默认值,就像你为层 layer=3 所做的那样,那么你不需要将任何值传递给 Level 构造函数。

标签: c# class parameters xna


【解决方案1】:

新关卡()

好吧,看看构造函数:

public Level(int levelIndex)

你在那里写一个int。任何整数值都会满足编译器并允许代码执行。像这样简单的事情:

new Level(0)

或整数变量,如:

new Level(layer)

至于你应该使用什么概念值,这完全取决于你。我们没有设计您的应用程序,所以我们不能真正说明您应该如何初始化您的对象。但是在严格的技术层面上,如果你的构造函数需要一个整数,那么你会给它一个整数。

【讨论】:

    最近更新 更多