在静态类中引用ContentManager?(C#,XNA)

在静态类中引用ContentManager?(C#,XNA),c#,xna,sprite,C#,Xna,Sprite,我已经创建了一个静态类,它需要能够更改对象中使用的精灵。但是,在非静态类中,我可以将对象中的ContentManager称为this.Content,但在静态类中,它表示不能使用“this” 对于如何从静态类引用此对象中的内容管理器,我有点不知所措。我尝试使用对象而不是这个(敌人[I]。),但这不起作用。我也尝试过只使用ContentManager.,但它告诉我,这并不存在 我仍然不完全理解ContentManager以及为什么它需要出现在每个对象中,但我很难找到关于它是什么以及它的作用的真正详

我已经创建了一个静态类,它需要能够更改对象中使用的精灵。但是,在非静态类中,我可以将对象中的ContentManager称为
this.Content
,但在静态类中,它表示不能使用“this”

对于如何从静态类引用此对象中的内容管理器,我有点不知所措。我尝试使用对象而不是
这个
敌人[I]。
),但这不起作用。我也尝试过只使用
ContentManager.
,但它告诉我,这并不存在

我仍然不完全理解ContentManager以及为什么它需要出现在每个对象中,但我很难找到关于它是什么以及它的作用的真正详细的信息(大多数教程似乎都在掩盖它,只是说它是必要的)

这是我到目前为止所掌握的一段代码。它简化了一点(还有很多),但只有
this.Content
部分给我带来了麻烦:

public static void fight(List<enemy> enemies)
    {
        for (int i = 0; i < enemies.Count; i++)
            {
                if (enemies[i].hp <= 0)
                                {
                                    enemies[i].LoadContent(this.Content, "spr_enemy_dead");
                                }

也许有更好的方法可以做到这一点,但我在搜索中没有发现任何东西

如果ContentManager是静态的,可能会这样声明:

class YourObject
{
    static public ContentManager Content;
enemies[i].LoadContent(Content, ...
您已经在该对象的静态函数中,因此您可以像这样简单地访问它:

class YourObject
{
    static public ContentManager Content;
enemies[i].LoadContent(Content, ...
或:


如果您的内容对象不是静态声明的,那么您不能在静态调用中访问它,除非您的对象上有引用…

您一直在谈论“对象”-哪个对象?静态方法没有上下文。。。您了解静态方法和实例方法之间的区别吗?(如果你是C#新手,我强烈建议你在开始XNA之前通过简单的控制台应用程序等学习该语言。)嗯,这有点苛刻,但确实如此。您可以尝试将ContentManager作为参数传递给fight方法,但您确实不应该这样做。:)抱歉,列表(列出敌人)是我传递给此方法的对象列表。我本想把它包括在内,但忘了。