C# 当前上下文中不存在Content.Load

C# 当前上下文中不存在Content.Load,c#,xna,C#,Xna,我正在阅读关于SoundEffect的本教程:但是,我从编译器那里得到一个错误,即“内容”在当前上下文中不存在 代码如下: using Microsoft.Xna.Framework.Audio; using Microsfot.Xna.Framework.Content; namespace SoundTouchTest { class SoundTouchTest { public void loadContent()

我正在阅读关于SoundEffect的本教程:但是,我从编译器那里得到一个错误,即“内容”在当前上下文中不存在

代码如下:

using Microsoft.Xna.Framework.Audio; 
using Microsfot.Xna.Framework.Content;

namespace SoundTouchTest 
{
     class SoundTouchTest
     {
            public void loadContent()
            {
                  SoundEffect s; 
                  s = Content.Load<SoundEffect>("example"); 
            }
     }
}
使用Microsoft.Xna.Framework.Audio;
使用Microsfot.Xna.Framework.Content;
命名空间SoundTouchTest
{
课堂声音接触测试
{
公共void loadContent()
{
音响效果;
s=Content.Load(“示例”);
}
}
}

我已经成功地添加了引用(或者至少我认为我已经添加了)。你知道为什么会发生这种情况吗?谢谢

而不是Content.Load它应该是ContentManager.Load


您可能需要创建Content Manager的实例,但是要使用它,您可以通过loadContent将
ContentManager
作为参数传入,然后在game1中找到的load方法中调用loadContent,也可以创建它的新实例(我不建议您这样做,您不会希望在每次需要加载对象时都创建一个新对象,而对象已经为您创建了)

您应该
ContentManager
实例作为参数传递给
loadContent()
方法:

void loadContent(ContentManager content)
{
    SoundEffect e = content.Load<SoundEffect>("example");
}

有一次尝试使用Microsfot.Xna.Framework;而不是使用Microsfot.Xna.Framework.Content;非常棒,这非常有意义,谢谢!但是,当我在该类中调用static void Main()方法并创建一个类似于您的实例时,编译器不喜欢这样。对不起,已经有一段时间了,我该如何解决这个问题呢(这是我们正在谈论的XNA游戏项目吗?不是真的,老实说,但如果需要的话,我想我能做到吗?我只是想测试一下:。很抱歉混淆了。你应该使用XNA游戏项目进行XNA相关的示例。然后遵循msdn示例将非常简单。:)谢谢!这是XNA/Monogame中非常混乱的一部分,因为它看起来像是在调用一个类方法(Content.Load),而实际上它是游戏类的一个属性!
SoundTouchTest soundTouchTest = new SoundTouchTest();
soundTouchTest.loadContent(this.Content);