gpt4 book ai didi

.net - 无法在代码中加载刚刚定义的类

转载 作者:行者123 更新时间:2023-12-03 17:51:37 25 4
gpt4 key购买 nike

我刚开始学习 Mono 和 .NET 的东西,在阅读了一些关于 F# 的内容后,我决定尝试遵循这个关于 F# 和 MonoGame 的简单游戏教程:

http://bruinbrown.wordpress.com/2013/10/06/making-a-platformer-in-f-with-monogame/

在整理了我从博客复制粘贴的代码的许多语法错误后,我得到了这个代码:

module desnovro

open Microsoft.Xna.Framework
open Microsoft.Xna.Framework.Graphics

type Game1 () as x =
inherit Game()

do x.Content.RootDirectory <- "Content"
let graphics = new GraphicsDeviceManager(x)
let mutable spriteBatch = Unchecked.defaultof<SpriteBatch>

override x.Initialize() =
do spriteBatch <- new SpriteBatch(x.GraphicsDevice)
do base.Initialize()
()

override x.LoadContent() =
()

override x.Update (gameTime) =
()

override x.Draw (gameTime) =
do x.GraphicsDevice.Clear Color.CornflowerBlue
()

[<EntryPoint>]
let main argv =
use g = new Game1()
g.Run()
printfn "Desnovro!!!"
0

在 MonoDevelop 解决方案中,我创建了一个 F# 项目,其中引用了:
  • FSharp.Core
  • 系统
  • System.Core
  • 陶.Sdl
  • MonoGame.Framework.Linux
  • OpenTK

  • 我添加了上面的文件,命名为 Program.fs .我能够成功编译该项目,但是当我尝试运行它时,出现以下异常:
    Unhandled Exception: System.TypeLoadException: Could not load type 'Game1' from assembly 'game, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.
    [ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not load type 'Game1' from assembly 'game, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.

    我的第一次尝试是将类定义和 main 函数放在单独的文件中(就像在教程中一样),但得到了相同的结果。如果我注释掉对 Game1 的引用和 g在主函数中,程序执行并打印我的消息“Desnovro!!!”成功地。

    出了什么问题以及如何解决?

    我完全是 .NET 的初学者,但我认为,因为我了解 Haskell 并且喜欢函数式编程,所以我很快就会开始使用 MonoGame 和 F# 开发游戏。我正在使用 Ubuntu 13.10。

    最佳答案

    尝试定义您的 Game键入命名空间而不是模块。 WPF不幸的是,C# 反射都很难在模块中定位类型。

    关于.net - 无法在代码中加载刚刚定义的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20023980/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com