Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么Loadcontent已经在Initialize()方法中执行?_C#_Xna - Fatal编程技术网

C# 为什么Loadcontent已经在Initialize()方法中执行?

C# 为什么Loadcontent已经在Initialize()方法中执行?,c#,xna,C#,Xna,我正在Visual Studio中试用XNA/Monogame。我发现文档在解释主XNA结构如何运行方面有些欠缺。据我所知,Game1.Initialize在Game1.LoadContent之前被调用 但是在这个代码示例中,我发现内容实际上已经在initialize函数中加载了。在这个代码示例中,您将看到--1--在--2--之前登录到控制台。为什么会这样 游戏1.CS 控制台输出: 这是因为您在方法的开头调用base.Initialize,然后调用LoadContent方法。对基类实现(包括

我正在Visual Studio中试用XNA/Monogame。我发现文档在解释主XNA结构如何运行方面有些欠缺。据我所知,Game1.Initialize在Game1.LoadContent之前被调用

但是在这个代码示例中,我发现内容实际上已经在initialize函数中加载了。在这个代码示例中,您将看到--1--在--2--之前登录到控制台。为什么会这样

游戏1.CS

控制台输出:


这是因为您在方法的开头调用base.Initialize,然后调用LoadContent方法。对基类实现(包括base.Initialize和base.LoadContent)的调用应始终位于相应方法的末尾。

这是因为您在方法的开头调用base.Initialize,然后调用LoadContent方法。对基类实现(包括base.Initialize和base.LoadContent)的调用应始终位于相应方法的末尾。

是的,我通过反复试验发现了这一点。但我怎么会知道呢?文档中没有说明base.initialize实际调用loadcontent。当您在编辑器中单击go to definition(转到定义)时,仍然没有指示基类做了什么,方法为空。对我来说,这似乎有点像意大利面代码……“goto”就是意大利面代码。您无法看到这一点的原因是visual Studio go to definition没有反编译代码,因此该方法为空。VS仅仅显示了类结构。另一方面,如果你觉得这很烦人,即使这只是一个2分钟的测试问题,那么我猜你不会觉得开源社区非常友好。大多数内容,虽然有很好的文档记录,但通常并不涵盖所有场景。因此,开源部分。我认为XNA/Monogame的主要问题是它似乎是一个“死”的项目,如果你能找到它,文档非常稀少。我仍然将其用于指导目的,但与Unity或Javascript不同的是,实际上并没有一个活生生的在线社区每周都在不断地发明新东西。@Kokodoko同意。我最喜欢的两个教程网站Reimers MVP;肖恩·哈格里夫斯(Shawn Hargreaves)和微软几年前就停止了。当宣布Win8不支持它时,我放弃了它。我转向了团结,没有回头看是的,我通过反复试验发现了这一点。但我怎么会知道呢?文档中没有说明base.initialize实际调用loadcontent。当您在编辑器中单击go to definition(转到定义)时,仍然没有指示基类做了什么,方法为空。对我来说,这似乎有点像意大利面代码……“goto”就是意大利面代码。您无法看到这一点的原因是visual Studio go to definition没有反编译代码,因此该方法为空。VS仅仅显示了类结构。另一方面,如果你觉得这很烦人,即使这只是一个2分钟的测试问题,那么我猜你不会觉得开源社区非常友好。大多数内容,虽然有很好的文档记录,但通常并不涵盖所有场景。因此,开源部分。我认为XNA/Monogame的主要问题是它似乎是一个“死”的项目,如果你能找到它,文档非常稀少。我仍然将其用于指导目的,但与Unity或Javascript不同的是,实际上并没有一个活生生的在线社区每周都在不断地发明新东西。@Kokodoko同意。我最喜欢的两个教程网站Reimers MVP;肖恩·哈格里夫斯(Shawn Hargreaves)和微软几年前就停止了。当宣布Win8不支持它时,我放弃了它。我转向了团结,没有回头看
        protected override void Initialize()
        {
            base.Initialize();
            // SOMEHOW LOADCONTENT HAS NOW ALREADY BEEN EXECUTED?
            Console.WriteLine("----2---- STILL EXECUTING INIT CODE");
        }

        protected override void LoadContent()
        {
            Console.WriteLine("----1---- GAME1 LOADS CONTENT");
            AssetsManager.LoadContent(this);
            SpriteBatch = new SpriteBatch(GraphicsDevice);
        }
----1---- GAME1 LOADS CONTENT
----2---- STILL EXECUTING INIT CODE