C# XNA游戏类Q:默认ContentManager实例“Content”何时初始化?

C# XNA游戏类Q:默认ContentManager实例“Content”何时初始化?,c#,xna,C#,Xna,据我所知,Program.cs是XNA程序的入口点,因为它包含了Main方法 在Main方法中,声明并初始化游戏实例的Game1子级 Game1.cs类的构造函数不涉及任何ContentManager初始化,但可以在构造函数中调用对象内容。这意味着在Main方法和Game1构造函数之间的某个地方,Content对象被初始化,但我一生都找不到任何文档说明这是在哪里发生的,以及是如何发生的。通常情况下,游戏的构造函数看起来像这样 public Game1() : base() { ... }

据我所知,Program.cs是XNA程序的入口点,因为它包含了Main方法

在Main方法中,声明并初始化游戏实例的Game1子级


Game1.cs类的构造函数不涉及任何ContentManager初始化,但可以在构造函数中调用对象内容。这意味着在Main方法和Game1构造函数之间的某个地方,Content对象被初始化,但我一生都找不到任何文档说明这是在哪里发生的,以及是如何发生的。

通常情况下,游戏的构造函数看起来像这样

public Game1() : base()
{
    ...
}
所以有两件事发生了

此变量在基ctor a中初始化,该变量在您之前运行。 变量内容是在基类型中以下面的方式声明的类级变量 对我来说,这似乎是相当基本的C

class Game
{
    public ContentManager Content = new ContentManager();
    ...
}
在.Net中也有一些wierd位,它们可以在其中执行诸如

ContentManager content;

public ContentManager Content 
{
   get 
   { 
       if(content == null)
          InitialiseContentManager();

       return content;
   }
}

几乎完全正确。除了getter中没有空检查之外。下面是XNA框架中反映出来的代码: