XNA 游戏类 问:默认值(?内容管理器实例'Content'初始化?



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

Main方法中,声明并初始化Game1(Game的子实例)实例。

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

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

public Game1() : base()
{
    ...
}

所以有两件事正在发生。。。

  1. 这个变量在基ctor中初始化,this在您之前运行。变量Content是以下面的方式在基类型中声明的类级变量

对我来说,这似乎是相当基本的C#。。。

class Game
{
    public ContentManager Content = new ContentManager();
    ...
}

在.Net中也有一些wierd bit,他们在那里做一些事情,比如。。。

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

最新更新