在C#/XNA/monogame中,如何将一个类的引用传递给另一个类中的函数?

在C#/XNA/monogame中,如何将一个类的引用传递给另一个类中的函数?,c#,xna,monogame,C#,Xna,Monogame,所以,我有一个敌人,当它死了,它需要被删除。因此,在该类的基类中,我试图放入一个函数,该函数删除第一个类,但是我在传递对该类的引用时遇到了问题。如何传递引用,或者是否有其他更好的方法删除类 只要问一下你是否需要澄清,因为我很难解释这一点 public override void Update(GameTime gameTime) { base.Update(gameTime); if (currentHealth <= 0) { alive = fa

所以,我有一个敌人,当它死了,它需要被删除。因此,在该类的基类中,我试图放入一个函数,该函数删除第一个类,但是我在传递对该类的引用时遇到了问题。如何传递引用,或者是否有其他更好的方法删除类

只要问一下你是否需要澄清,因为我很难解释这一点

public override void Update(GameTime gameTime)
{
    base.Update(gameTime);
    if (currentHealth <= 0)
    {
        alive = false;
        //This is not working \/
        killswitch(ref Game1.ant1);
        //Kills bug and gives out loot etc.
    }
    else if (position == house1 || position == house2 || position == house3 || position == house4
        || position == house5 || position == house6 || position == house7 || position == house8
        || position == house9 || position == house10 || position == house11 || position == house12)
    {
        killswitch(ref Game1.ant1);
    }

    public void killswitch(ref Ant ant1)
    {
        //This is where loot is given
        Global.money += bountyGiven;
        //delete class code here

    }
公共覆盖无效更新(游戏时间游戏时间)
{
更新(游戏时间);

如果(currentHealth从头部写入…这可能会给你一个如何处理无限数量蚂蚁的提示

Public Class Ant
   public position as vector2
   public health as integer = 100
   public isdead ad boolean = false
End class

Public Class Ants
   Inherit list (of Ant)

   Public Sub AddAnt(Position)
   // add new ant to list
   End Sub

   Public Sub Update()
    For Each ant As ant In ants
      If Not(ant.isdead)
        // update ants
      End If
    Next

    Me.RemoveAll(function(c) c.isdead = true)

   End Sub

   Public Sub Draw()
     For Each ant As ant In ants
      If not(ant.isdead)
        // draw ants
      End If        
     Next
   End Sub

End class

显示一些代码。您所做的与上一个问题完全相同…我们只能猜测您正在尝试做什么。向我们显示您正在做什么。不完全正确,但我将输入一些代码请参见,因此我需要传递对ant1的引用(在Game1.cs中制作)所以我可以删除这个类。什么是
Game1.ant1
killswitch
不接受任何参数,为什么要传递一个参数?没错。我已经更新了代码,但它仍然说:“非静态字段、方法或属性需要一个对象引用,这是一个sub(我是一个新程序员)很抱歉,我没有看到你要求c#…我用(伪)basic编写。sub在c中是无效的,你介意把它翻译成c吗?我以前从未用过basic。谢谢你,到目前为止,这已经很好地工作了。我唯一没有翻译的是“我。Removeall(…)”,但我会仔细阅读。无论如何,非常感谢!!!检查这里的
Me Removeall()