据我所知,Program.cs是XNA程序的入口点,因为它包含Main方法。
在Main方法中,声明并初始化Game1(Game的子实例)实例。
Game1.cs类的构造函数不涉及任何ContentManager初始化,但可以在构造函数中调用对象Content。这意味着在Main方法和Game1构造函数之间的某个位置,Content对象被初始化,但我一生都找不到任何文档说明这是在哪里以及如何发生的。
通常情况下,游戏的构造函数看起来像这样。。。
public Game1() : base()
{
...
}
所以有两件事正在发生。。。
- 这个变量在基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;
}
}